如何退出到旧版本,忽略之后的所有版本

时间:2015-08-07 10:05:28

标签: mercurial tortoisehg

我有3次提交,我意外地推送到公共存储库。我想恢复到旧版本(在发生这3次提交之前的版本)并将其作为我们公共存储库中的当前代码。 我正在使用 TortoiseHg,版本2.11.1

2 个答案:

答案 0 :(得分:2)

选项1

您可以使用命令中提到的strip选项 hg strip是命令 必须启用此扩展程序 通过将以下行添加到.hgrc或Mercurial.ini来启用扩展: [扩展] strip = 此选项仅适用于您可以访问托管代码的中央存储库,并且您有一个小组,您可以知道是否有人已经撤消了您的更改。

选项2

另一种选择是退出这3个提交,因为你使用的是UI,我会附上一个屏幕截图

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

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

enter image description here

选项3

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

1)关闭分支并更新到您想要的上一个好的提交。 2)通过新提交从那里重新打开barch(命名分支可以有多个头) 3)使用hg revert -r和commit

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

答案 1 :(得分:0)

你可以这样做:

hg backout -r <rev>
hg push

这将退回到<rev>修订版(应该是最后一次正确的提交)。换句话说,它会将您的工作目录设置为与上次正确提交时相同的状态,并创建一个带有解释性消息的新提交。然后,您将其推送到公共存储库,以便再次显示当前代码。