Mercurial 关于乌龟的简单问题
假设一个人克隆了一个存储库,他的主要工作是在本地编辑它。接下来的正确操作是什么,这样他就可以在保持更改的同时与初始上游合并?i、 就像乌龟中的“更新”一样。简单的答案是“拉”。从那里,你有两个选择 您可以像使用svn一样简单地进行更新,并且您的更改将保持本地且无版本连接,或者您可以提交更改并将其与您拉取的头合并。如果您不回退,这些合并将永远不会出现在中央回购协议上,您将获得额外的好处,使您的更改版本化并易于跟踪。第二种方法更符合DVCS的精神。中的两种方法是由来已久的“再基础vs.合并”决斗 第一种方法需要更多的解释 首先,所有DVCSs都鼓励频繁提交,这是比svn等CVC的一个主要优势,因此当您想要与上游同步时,您的本地更改可能已经提交了。如果您不提交,Mercurial 关于乌龟的简单问题,mercurial,tortoisehg,Mercurial,Tortoisehg,假设一个人克隆了一个存储库,他的主要工作是在本地编辑它。接下来的正确操作是什么,这样他就可以在保持更改的同时与初始上游合并?i、 就像乌龟中的“更新”一样。简单的答案是“拉”。从那里,你有两个选择 您可以像使用svn一样简单地进行更新,并且您的更改将保持本地且无版本连接,或者您可以提交更改并将其与您拉取的头合并。如果您不回退,这些合并将永远不会出现在中央回购协议上,您将获得额外的好处,使您的更改版本化并易于跟踪。第二种方法更符合DVCS的精神。中的两种方法是由来已久的“再基础vs.合并”决斗 第
hg update
默认情况下将尝试将您的更改合并到您要更新的版本中。有关详细信息,请参见hg帮助更新(注意:使用-C
时要非常小心)
现在,如果您在向上游拉时确实有本地变更集,那么您将得到两个头部(不是您,而是您的存储库)。然后,您必须决定是合并还是重新设置基础
hg更喜欢并鼓励合并,因此rebase不是在core中提供的,而是一个捆绑的扩展,您必须启用该扩展才能获得命令
关于这个话题,这里有很多好消息。如果你想切入主题,请阅读中的链接,看看创作者是怎么说的
说到DVCS,几乎没有什么“简单”的问题:)我看到了第三个带有“mq”扩展(“Mercurial补丁队列”)的解决方案 使用此选项,您不会提交,只需根据本地更改创建并刷新修补程序即可。定期拉取后,在更新工作副本之前,您将分离修补程序,更新,然后重新连接修补程序 通过这种方式,您将完全隔离在修补程序队列中管理自己的更改,同时与来自世界的更改保持联系