我正在学习Git,我发现this site上的教程非常有用。在该页面中,有关合并,它包括:为什么合并需要你考虑共同的祖先?
+---------- (D) ---------------+ / | \ (A) -- (B) -- (C) -------------- (E) -- (F) | | fix-headers master | HEAD
的合并提交的(F),其 父母(d)和(E)。 (B)为 (D)和 (E)之间的共同祖先,(F)中的文件应该包含 (B)和(D)之间的变化, 即标题修正,并入 到文件来自(E)。
我不明白你为什么会担心共同的祖先B.为什么你不能只是合并D和E来产生F? D将来自B,但可能包含你想要的差异。 B和D之间可能会有一些提交,并且发生了更改。
Git使用的变更就像善变的,所以一个节点仅包含的差异其父。 – sleeplessnerd 2011-04-01 12:11:29
@sleeplessnerd实际上,Git存储完整的文件,而不是差异。除非你的意思是别的吗? – Jonathan 2011-04-01 12:16:14
查看[这个问题](http://stackoverflow.com/q/4129049/11343)3路合并的优势 – CharlesB 2011-04-01 12:28:23