2017-06-13 131 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冲突,但随后的承诺可能会有效地解决提前冲突” “,这样合并分支的尖端返回到主线没有冲突。