use*_*840 5 git git-merge git-rebase
我不时偶然发现“git rebase”导致的冲突数量少于“git merge”的说法,例如这里:为什么 git rebase 通常比合并有更少的合并冲突?. 这是否意味着可能git-merge <BRANCH_A> <BRANCH_B>会出现失败的情况,我会做git reset --hard ORIG_HEAD,然后做,然后git-rebase <BRANCH_B> <BRANCH_A>会成功?你能举一个这种情况的例子吗?
想象一下这样的历史:
A-B-C-D-E “top-branch”
\
F-G-H
Run Code Online (Sandbox Code Playgroud)
现在合并 E成H意思是:“采取的DIFFB?H和的差异B?E,并找出如何将它们结合起来”。
重订在另一方面方式:
B?F和一个差异B?E并找出如何将它们组合成F’F?G和一个差异F?F’并找出如何将它们组合成G’G?H和一个差异G?G’并找出如何将它们组合成H’所以 rebase 与 merging F、 thenG和Hinto完全一样top-branch。
rebase 方法将以更多步骤进行合并。这有优点也有缺点。
H实际上是 的恢复时会发生什么F。在我看来,rebase 实际上是更糟糕的过程,虽然这可能是可能的,但我很难想象它实际上避免了冲突的情况。似乎很可能是您的冲突仅由F. 当该代码块在 中进一步更改时G,您可能必须将所有这些更改作为合并中的一个冲突来解决,但您只需在 rebase 中解决该一行更改。但这并不是真正的区别,因为冲突只会看起来更大,但应该同样容易解决。
| 归档时间: |
|
| 查看次数: |
844 次 |
| 最近记录: |