git merge
和 git rebase
有什么区别?
最佳答案
假设最初有 3 个提交,A
、B
、C
:
然后开发人员 Dan 创建了提交 D
,开发人员 Ed 创建了提交 E
:
显然,应该以某种方式解决此冲突。为此,有两种方法:
merge :
提交 D
和 E
仍然在这里,但是我们创建 merge 提交 M
继承了 D的更改
和 E
。然而,这会产生菱形形状,许多人对此感到非常困惑。
重置:
我们创建提交 R
,其实际文件内容与上面的 merge 提交 M
相同。但是,我们摆脱了提交 E
,就像它从未存在过一样(用点 - 消失线表示)。由于这种删除,E
对于开发人员 Ed 来说应该是本地的,并且永远不会被推送到任何其他存储库。 rebase 的优点是避免了菱形形状,并且历史保持漂亮的直线 - 大多数开发人员都喜欢这样!
关于git - 'git merge' 和 'git rebase' 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16666089/