2015-08-18 68 views
5

考慮git merge-base交換?

$ git merge-base <original-branch> <new-branch> 

問題:git merge-base交換?也就是說,上面的命令產生的結果與

$ git merge-base <new-branch> <original-branch> 
+0

我不確定,但因爲可以有多個合併基地,所以我猜測答案是** no **。 – Jubobs

+1

另請參閱Christopher在這裏的精彩答案:http://stackoverflow.com/a/12198219/5414160 –

回答

4

如果只有一個合併基礎,那麼是的。
含義:git merge-base --all <original-branch> <new-branch>只返回一個提交。

但是,正如在git merge-base man page提到:

當歷史涉及縱橫交錯的合併,可以有兩種提交不止一個最好的共同祖先。
例如,與該拓撲:

---1---o---A 
\/
X 
/\ 
---2---o---o---B 

既1和2是AB合併鹼。兩者都不如其他(兩者都是最好的合併基地)。
當沒有給出--all選項時,沒有指定哪一個最好是輸出

+1

簡而言之,'git merge-base'可能碰巧是可交換的,但該命令的規範沒有提供這樣的保證。 – Jubobs