如何解决跨分支的合并冲突?

26

我已经从另一个我们称之为repoA的仓库分叉出我的repoB。现在我没有权限写入repoA。

当我尝试在repoA上创建一个拉取请求以获取最新更改并将其合并到repoB中时,我收到了合并冲突错误。我怎么解决这个问题?

我尝试过这个:

git checkout -b repoA master
git pull https:repoA master

git checkout master
git merge --no-ff repoA
git push origin master

注意:我没有forkA的写入权限,无法进行checkout操作。


@AndreasPapadopoulos 我可以通过检出我想要比较的分支来比较 Eclipse Git 工具中的分支。在这里,我无法检出我从中 fork 的 repo 的主分支,那么我怎么比较呢? - Pritam Banerjee
1
为什么你不能“检出我从中派生的存储库的主分支”?这是只读操作,应该可以正常工作。也许你有不同的问题,比如想要检出已经检出但上游不同的分支名称? - AnimiVulpis
1个回答

57

首先添加上游远程仓库

git remote add upstream https://repoA
git fetch upstream

合并上游更改

git checkout master
git merge upstream/master

解决冲突并推送

git push origin master

您的拉取请求应该会自动更新


我也遇到了这个问题,但不确定应该将分支合并到哪个分支。如果我将分支x的拉取请求合并到分支y中,并且存在冲突,那么我该如何将冲突拉取到本地分支x中以便进行修复?欢迎任何指导! - v3nt
1
@v3nt 你需要使用 branch-y 获取远程分支,然后将 branch-y 合并到你的 branch-x 中,这会产生一堆冲突需要解决。当你解决完这些冲突后,就可以提交并推送 branch-x 来更新 PR 并清除冲突了。 - Jeff Puckett
对于那些想在SourceTree中完成此操作的人,这个SO答案提供了一些很好的指导。 - Neo
@JeffPuckett,你能把那个命令写出来吗? - Sam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接