解决 Git 合并多个分支时的冲突

7

章鱼合并是指合并两个以上的头。

用户应该如何使用普通的3路合并工具比较文件?

将3个文件传递给合并工具:BASE,LOCAL,REMOTE

对于3个头需要多少种组合?

1个回答

8
在这种情况下,您不应该使用章鱼合并。章鱼合并仅适用于没有合并冲突或冲突非常简单以至于可以手动解决而无需合并工具的情况。
在您的情况下,您应该执行2个普通合并,其效果与章鱼合并完全相同,但是允许您使用合并工具。
您可以手动检出不同分支头的版本,并两次运行3方合并工具,以使您的章鱼合并起作用。但这与执行两个普通合并的过程完全相同,只是更加复杂。
如果您想进行章鱼合并,以使历史记录看起来更好,请先执行两次合并,然后重写您的历史记录。

1
+1,但章鱼仍然可以显示冲突,对吧?只是当超过2个文件有冲突时不会显示(http://alblue.bandlem.com/2011/10/git-tip-of-week-merging-revisited.html)。 - VonC
好问题。我很好奇,所以我测试了一下。它只在一些非常特定的情况下才有效(比如你链接中的那个)。如果你的主分支有三个分支,其中两个有冲突的更改,第三个有非冲突的更改,Git 将无法合并并且不会提供任何冲突解决方案。 - Chronial
4
如何重塑自己的历史? - drumfire
2
@drumfire 这有点复杂。如果谷歌无法帮助您,您应该在 SO 上创建一个单独的问题。但我也强烈建议不要在这里进行任何重写,因为您将失去有关冲突解决的信息。 - Chronial
1
有没有办法强制执行章鱼合并的冲突解决?在我的情况下,这些分支是相互依存的,因此逐个合并将导致损坏的提交,我希望避免这种情况。如果我可以合并并解决所有冲突,使每个提交都通过测试,那就太好了。 - Kevin Cox
1
@drumfire 一旦你完成了这两个合并,这里有一种重写分支的方法 - TTT

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