Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial 关于乌龟的简单问题_Mercurial_Tortoisehg - Fatal编程技术网

Mercurial 关于乌龟的简单问题

Mercurial 关于乌龟的简单问题,mercurial,tortoisehg,Mercurial,Tortoisehg,假设一个人克隆了一个存储库,他的主要工作是在本地编辑它。接下来的正确操作是什么,这样他就可以在保持更改的同时与初始上游合并?i、 就像乌龟中的“更新”一样。简单的答案是“拉”。从那里,你有两个选择 您可以像使用svn一样简单地进行更新,并且您的更改将保持本地且无版本连接,或者您可以提交更改并将其与您拉取的头合并。如果您不回退,这些合并将永远不会出现在中央回购协议上,您将获得额外的好处,使您的更改版本化并易于跟踪。第二种方法更符合DVCS的精神。中的两种方法是由来已久的“再基础vs.合并”决斗 第

假设一个人克隆了一个存储库,他的主要工作是在本地编辑它。接下来的正确操作是什么,这样他就可以在保持更改的同时与初始上游合并?i、 就像乌龟中的“更新”一样。

简单的答案是“拉”。从那里,你有两个选择

您可以像使用svn一样简单地进行更新,并且您的更改将保持本地且无版本连接,或者您可以提交更改并将其与您拉取的头合并。如果您不回退,这些合并将永远不会出现在中央回购协议上,您将获得额外的好处,使您的更改版本化并易于跟踪。第二种方法更符合DVCS的精神。

中的两种方法是由来已久的“再基础vs.合并”决斗

第一种方法需要更多的解释

首先,所有DVCSs都鼓励频繁提交,这是比svn等CVC的一个主要优势,因此当您想要与上游同步时,您的本地更改可能已经提交了。如果您不提交,
hg update
默认情况下将尝试将您的更改合并到您要更新的版本中。有关详细信息,请参见hg帮助更新(注意:使用
-C
时要非常小心)

现在,如果您在向上游拉时确实有本地变更集,那么您将得到两个头部(不是您,而是您的存储库)。然后,您必须决定是合并还是重新设置基础

hg更喜欢并鼓励合并,因此rebase不是在core中提供的,而是一个捆绑的扩展,您必须启用该扩展才能获得命令

关于这个话题,这里有很多好消息。如果你想切入主题,请阅读中的链接,看看创作者是怎么说的


说到DVCS,几乎没有什么“简单”的问题:)

我看到了第三个带有“mq”扩展(“Mercurial补丁队列”)的解决方案

使用此选项,您不会提交,只需根据本地更改创建并刷新修补程序即可。定期拉取后,在更新工作副本之前,您将分离修补程序,更新,然后重新连接修补程序

通过这种方式,您将完全隔离在修补程序队列中管理自己的更改,同时与来自世界的更改保持联系