没有冲突的合并是否等同于没有冲突的变基?

Tom*_*lis 4 git merge rebase

git merge当且仅当相应的git rebase将成功而没有冲突时, a将成功而没有冲突是否正确?

tor*_*rek 5

不,实际上有一个微不足道的情况,即合并可以正常工作但 rebase 不能:

...--o--A   <-- mainline
      \
       B--C--!C   <-- branch
Run Code Online (Sandbox Code Playgroud)

这里C是一个提交与冲突A,并!C为它的回归。合并branchmainline在源树效果上等同于将提交合并B回主线,同时重新设置副本C(与 冲突A)和然后!C(在解决时,也与 冲突A)。

当然,您可以交互地变基并简单地删除两者C!C在这种情况下,但在更复杂的链中,您可以看到提交可能如何与提交发生冲突,A但随后的提交可能会“提前”有效地解决该冲突,以便合并提示分支回到主线没有冲突。