Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/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,我有3个提交,是我意外地推送到公共存储库的。我想恢复到一个旧版本(这3次提交之前的版本),并将其作为公共存储库中的当前代码。 我使用的是2.11.1版的《乌龟王》,你可以这样做: hg backout -r <rev> hg push hg回退-r 汞推力 这将返回到版本(应该是最后一次正确提交)。换句话说,它会将您的工作目录设置为与上次正确提交时相同的状态,并使用解释性消息创建一个新的提交。然后将其推送到公共存储库,使其再次成为当前代码。选项1 您可以使用命令中提到的strip

我有3个提交,是我意外地推送到公共存储库的。我想恢复到一个旧版本(这3次提交之前的版本),并将其作为公共存储库中的当前代码。
我使用的是2.11.1版的《乌龟王》,你可以这样做:

hg backout -r <rev>
hg push
hg回退-r
汞推力

这将返回到
版本(应该是最后一次正确提交)。换句话说,它会将您的工作目录设置为与上次正确提交时相同的状态,并使用解释性消息创建一个新的提交。然后将其推送到公共存储库,使其再次成为当前代码。

选项1

您可以使用命令中提到的strip选项 hg strip是命令 必须启用此扩展 通过向.hgrc或Mercurial.ini添加以下行来启用扩展: [延期] 剥落= 只有当您可以访问托管代码的中央存储库,并且您有一个小组,您可以知道是否有人已经拉取了您的更改时,此选项才适用

选项2

另一个选项是撤销这3个提交,因为您使用的是UI,所以我将附加一个屏幕截图

步骤1:右键单击不需要的提交,您将看到一个退出选项,单击该选项,向导将引导您。 如果您尝试退出的是合并,则必须选择要退出的分支

对3个不需要的提交执行相同的操作

选项3

如果您有许多提交,并且它位于命名分支中,那么遵循这些步骤将提供解决方案

1) 关闭分支并更新到所需的最后一次正确提交。 2) 通过新提交从那里重新打开barch(命名分支可以有多个头) 3) 使用hg revert-r和commit


这将使工作目录与您需要的最后一个良好的提交完全相同,并忽略inwant提交。这仅在提交位于命名分支中时有效。

我通常通过UI执行,但据我所知,这会将我的本地代码版本更新为我想要的版本,但不会创建新版本。我尝试这样做是为了不产生任何结果,当我尝试提交时,我收到一条消息说没有任何更改。第一个更新您的本地代码,第二个创建新版本,第三个将新版本推送到远程存储库。但当我尝试第二个而不是创建新提交时,会显示消息“未更改”@ajay,抱歉,我的坏消息。我编辑了答案。这应该可以工作:)这将删除我在提交中所做的更改。在执行push命令之前,我们是否应该做一个hg Committee Ajay。。这是您想要的吗->剥离已从本地删除所选提交,但我的公共存储库中也存在同样的问题,也就是说,当我尝试获取最新更改时,剥离的更改也来自公共存储库如果您有权访问中央存储库,您可以剥离它,但是,如果其他人已经拉取了您的更改,那么它们将在下次推送时再次出现在中心位置。我认为你应该通知你的团队成员,在你完成中央的脱衣命令之前,不要做任何改变。完成后,请所有人重新接上电话。我想,这会起作用,但我无法进入中央电视台。然而,我通过支持3次意外提交实现了相同的功能。因此,实际上,我当前拥有的代码作为当前版本是预期版本。如果可以访问central repo,请将您的评论作为答案发布,因为我认为strip是最干净的选项。您的意外提交是否包括二进制文件?