Mercurial中rebase命令的优点是什么?

Mercurial中rebase命令的优点是什么?,mercurial,Mercurial,与标准推/拉命令相比,在Mercurial中使用rebase命令的优点是什么?有一个很好的解释: 答案在于重新设定基准。重定基址是git流行的一种技术,您可以重写尚未推送的修补程序,以便它们应用于当前的远程提示,而不是应用于上次拉取的存储库提示。这样做的好处是,合并历史记录显示了在主要分支之间进行的有用合并,而不仅仅是您对上游存储库进行的每一次合并 正常的pull、merge、push序列将创建大量提交,这些提交在存储库的历史记录中不是很有用。重定基址有助于消除这些问题。如果执行拉-合并-推序列

与标准推/拉命令相比,在Mercurial中使用rebase命令的优点是什么?

有一个很好的解释:

答案在于重新设定基准。重定基址是git流行的一种技术,您可以重写尚未推送的修补程序,以便它们应用于当前的远程提示,而不是应用于上次拉取的存储库提示。这样做的好处是,合并历史记录显示了在主要分支之间进行的有用合并,而不仅仅是您对上游存储库进行的每一次合并


正常的pull、merge、push序列将创建大量提交,这些提交在存储库的历史记录中不是很有用。重定基址有助于消除这些问题。

如果执行拉-合并-推序列并使“合并”错误,则始终可以“退出”“合并-提交”。因此,您有一种简单的“撤消推送”方法。我不知道在使用rebase时是否有同样简单的方法。

回答清楚,谢谢Vincent。然而,从我的角度来看,这让我认为,如果这就是它的全部内容,那么为用户添加新功能和新概念来考虑可能就不值得了。你不必使用重定基址,你可以随时进行分支和合并。默认情况下,在中未启用iirc重基mecurial@jk如果默认情况下不启用它,请所有开发人员都启用它是一个好主意吗?如果有人不这样做,会发生什么呢?如果不是所有使用共享回购的开发人员都启用它,那就不重要了,因为重基是在本地完成的&不会产生任何特殊的结果(只是普通的变更集)。这不仅仅是“一种更好的合并方式”,请参见rebase命令将跳过合并操作,因此无需从错误的合并中退出。我不理解您的评论。。我的观点是,使用merge,很容易“回退”错误的推送。使用rebase命令时,没有合并操作。所以不可能有一个“糟糕的合并”。我完全同意@Guy的观点,rebase隐藏了合并,隐藏了事件的顺序。如果存在冲突,则在执行重新基址时,mercurial将允许您修复冲突,但该操作将与重新基址头的第一次提交“混合”。最后,你不知道是修订版弄坏了什么,还是冲突解决方案弄坏了什么。你说得对,何塞。我没看到那个。但我不确定那个家伙指的是那个。