为什么合并基础在双向合并中很重要?

时间:2015-08-20 11:06:31

标签: git

我试图理解为什么合并基在复杂的三向合并中很重要。为了理解 this ,我意识到我甚至不理解为什么它们在双向合并中很重要!

例如:假设我们在分支上提交B" master"并在分支" alt"上提交C。进一步假设BC分别是每个分支masteralt的头部提交。假设我们希望将C合并到B以在主分支上形成提交D。假设最后在" master"上提交A branch是BC的合并基础。

问题1:为什么A在执行合并操作时很重要?无法抓取C工作目录中的内容并将其合并到B工作目录的内容中,而无需对内容进行任何参考&# 39; A的工作目录?

编辑:

问题2:假设在CA之间提交和/或在BA之间提交。在执行合并操作时,这些提交是否会从git的角度来看?

1 个答案:

答案 0 :(得分:2)

您所描述的三向合并:BC将与其共同祖先A的知识合并。共同祖先用于了解AB之间修改了哪些文件,因此需要将哪些更改带到C({{1}之间已进行了哪些更改}和A,标记冲突。)

想象一下你没有使用合并基础:现在你所拥有的只是每一面都有一堆文件。如果任何文件不同,则必须冲突。如果您有一个共同的祖先,您可以确定某个分支如何更改文件并提升一方(如果C已更改文件但B尚未更改,则合并将采用C合并时的一面。)没有共同的祖先,那只会是冲突。