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

how to backout to an older version ignoring all versions after that

我不小心将 3 个提交推送到了 public 存储库。我想恢复到旧版本(这 3 次提交发生之前的版本)并使其成为我们 public 存储库中的当前代码。 我正在使用 TortoiseHg,版本 2.11.1

你可以这样做:

hg backout -r <rev>
hg push

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

选项 1

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

选项 2

另一种选择是取消这 3 次提交,因为您使用的是 UI,我将附上屏幕截图

第 1 步:右键单击不需要的提交,您将看到一个退出选项,单击该选项,向导将指导您。 如果它是您要退出的合并,那么您必须 select 要退出到哪个分支。

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

选项 3

如果你有很多提交,并且如果它在一个命名的分支中,按照这些步骤将提供一个解决方案

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

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