git merge当且仅当相应的git rebase将成功而没有冲突时, a将成功而没有冲突是否正确?
不,实际上有一个微不足道的情况,即合并可以正常工作但 rebase 不能:
...--o--A <-- mainline
\
B--C--!C <-- branch
Run Code Online (Sandbox Code Playgroud)
这里C是一个提交与冲突A,并!C为它的回归。合并branch回mainline在源树效果上等同于将提交合并B回主线,同时重新设置副本C(与 冲突A)和然后!C(在解决时,也与 冲突A)。
当然,您可以交互地变基并简单地删除两者C,!C在这种情况下,但在更复杂的链中,您可以看到提交可能如何与提交发生冲突,A但随后的提交可能会“提前”有效地解决该冲突,以便合并提示分支回到主线没有冲突。