丢弃 TortoiseHg 中的多个提交

Discarding more than one commit in TortoiseHg

我正在使用 TortoiseHg。
我做了一个错误的提交,然后另一个错误的提交。
两个提交都处于草稿状态(尚未推送)。
我想完全忽略此提交并返回,就好像它们从未提交过一样。

回滚似乎只删除了最后一次提交。
我怎样才能完成这个简单的任务?

在设置中启用 mqstrip 扩展,然后在变更集上下文菜单中使用 Modify History -> Strip

你可以为两个错误的提交回滚两次

Follow-up 与@zerkms

讨论

MQ 在 2.8 之前包含 Mercurial (TortoiseHG) 的 strip。现在是 independent extension,必须在没有 MQ(参见 2)的扩展(参见 1)中启用

之后,Strip 将出现在 context-menu 的 "Modify history" 菜单中,用于变更集

在最近的 mercurial 中(我认为是从 v2.8 开始),您可以使变更集过时,这会在大多数视图中隐藏它们,但如果您发现需要它们,它们仍然存在。这是做你想做的推荐方法。

假设最近的变更集是 132,最新的好变更是 130。只需像这样使变更集 131 和 132 过时:

hg prune -r 131::132

再简单不过了(只需确保当前父级不是不需要的变更集之一)。

如果您想查看过时变更集的内容,只需将 --hidden 添加到普通命令行即可,例如:

hg log -r 120::132 --hidden

注意。 Tortoise 具有查看过时变更集的功能,但我认为它还没有能力使它们过时。