我理解re-base适用于你想在基础分支中添加修复并将其放入所有其他分支的情况,但它似乎比合并更加复杂(有更多的冲突)。 我是否遗漏了什么?
我理解re-base适用于你想在基础分支中添加修复并将其放入所有其他分支的情况,但它似乎比合并更加复杂(有更多的冲突)。 我是否遗漏了什么?
git rebase
是一个好的实践 - 即您尚未推送到其他人正在拉取的位置。Rebase会重写历史记录,因此如果您使用rebase,则拉取的人将遇到问题,而合并不会重写历史记录,因此不会对其他人造成问题。merge
:如果你将一个提交变基到另一个提交上,你就创建了一个状态在开发期间从未存在过的新提交。这个状态很可能没有经过测试,甚至无法编译,或者以其他方式不合理。foo()
的代码。第二天,另一个开发人员告诉你,由于foo()
存在问题,他正在删除它。因此,你用另一个提交删除了对foo()
的调用,并继续完成你的功能。如果现在你将你的工作变基到已经由你的同事删除了foo()
的主分支上,即使rebase
操作可能不会遇到任何冲突,你早期的提交都将无法编译。git
是为合并而设计的,最好使用它进行合并。在了解rebase之前,它会让人感到害怕。以下是关于rebase和merge的简要总结: 请注意,您最终得到的最终提交所指向的快照,无论是重新设置提交的最后一个(对于rebase)还是合并后的最终合并提交(对于merge),都是相同的快照 - 只有历史记录不同。重新设置将更改从一个工作线路重播到另一个工作线路中引入的顺序,而合并则将端点合并在一起。