2014-02-25 50 views
4

有沒有一種簡單的方法來檢測兩個分支之間的潛在合併/ rebase衝突與git命令?例如,某些文件在兩個分支中都被修改,或者某些文件從一個分支中刪除並在另一個分支中可用。我可以想像的是找到兩個分支的共同祖先與命令Git:揭示潛在合併/ rebase衝突

git merge-base 

,然後列出從共同祖先的所有文件更改狀態的兩個分支的頭,然後比較狀態列表,找出潛在的合併點。這是正確的方式還是更聰明的存在?如果是的話如何實現呢?

非常感謝。

回答

4

有幾個關於SO的問題與此類似,其中大部分與接受的答案,告訴你做一個git merge --no-commit。但是,這仍然會在結帳中執行合併並修改工作樹。這個問題,據我所知大約是檢測到的衝突。

This answer列出了測試衝突的方法。測試的縮寫形式,提供in a comment到這個答案,看起來像這樣:

git merge-tree `git merge-base branch1 branch2` branch1 branch2 \ 
    | grep -A3 "changed in both" 
+0

謝謝,它的工作就像一個魅力。 – Skywolf