2017-06-13 198 views
3

當且僅當相應的git rebase成功且沒有衝突時,git merge是否成功且沒有衝突是否正確?是合併而不衝突相當於rebase沒有衝突?

+3

我知道這並不完全符合您的要求,但請記住,rebase可能導致連續N次衝突(其中N是要重新提交的提交次數),而只有一次合併。所以當他們*做*衝突時有顯着的不同:) –

回答

4

不,其實有一個簡單的情況下合併工作正常,但底墊不會:

...--o--A <-- mainline 
     \ 
     B--C--!C <-- branch 

其中C是提交與A衝突,!C是其逆轉。合併branchmainline相當於在源樹效果合併提交B回到主線,而重訂副本兩者C(其與A衝突),然後!C(其被解決時,還與A衝突)。

當然,你可以交互式衍合和簡單的丟棄既C!C在這種情況下,但在更復雜的鏈條,你可以看到如何提交可能與A衝突,但隨後的承諾可能會有效地解決提前衝突」 「,這樣合併分支的尖端返回到主線沒有衝突。