如何解决从复刻仓库发起的拉取请求中的合并冲突
解决Pull Request冲突的实操步骤
嘿,别慌,这种合并冲突的场景太常见了,我给你一步步捋清楚怎么操作:
首先,先确认你的本地仓库已经关联了原仓库(original repo)作为远程上游——毕竟你是复刻的仓库,默认应该已经有了,但咱们先检查确认下:
- 打开终端,进入你的本地仓库目录,运行:
git remote -v
你会看到两个远程源:origin是你自己的复刻仓库,upstream应该指向原仓库的地址。如果没看到upstream,那先手动添加:git remote add upstream <原仓库的Git地址>
把<原仓库的Git地址>替换成你当初复刻的那个仓库的实际地址就行,比如https://github.com/xxx/original-repo.git
接下来,把原仓库的最新代码拉到你的my changes分支:
- 先切换到你的分支(如果分支名有空格,记得加引号):
git checkout "my changes" - 然后拉取原仓库默认分支(一般是
main,如果是老项目可能是master)的最新代码:git pull upstream main
这里如果原仓库的默认分支不是main,换成对应的分支名就行。
这时候Git会自动尝试合并,有冲突的话会直接告诉你哪些文件出问题了。接下来就是手动解决冲突:
- 打开冲突文件,你会看到Git标记的冲突块:
<<<<<<< HEAD 你在my changes分支里写的内容 ======= 原仓库main分支的最新内容 >>>>>>> upstream/main - 你需要编辑这些文件,保留正确的内容,删掉这些冲突标记,然后保存。
解决完所有冲突后,提交并推送改动:
- 把处理好的文件加入暂存区:
git add . - 提交改动:
git commit -m "Resolve merge conflicts with upstream main" - 最后推送到你自己的复刻仓库:
git push origin "my changes"
这时候你再回到原仓库的Pull Request页面,就能看到冲突已经解决,维护者就能正常合并你的改动啦!
内容的提问来源于stack exchange,提问作者four-eyes
相关产品推荐
相关产品推荐

