我正在學習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