【发布时间】:2015-03-05 23:37:42
【问题描述】:
我正在使用 TortoiseHg。
我做了一个错误的提交,然后又做了一个错误的提交。
两个提交都处于草稿状态(尚未推送)。
我想完全忽略这些提交并返回,就好像它们从未提交过一样。
执行回滚似乎只会删除最后一次提交。
我怎样才能完成这个简单的任务?
【问题讨论】:
标签: mercurial tortoisehg
我正在使用 TortoiseHg。
我做了一个错误的提交,然后又做了一个错误的提交。
两个提交都处于草稿状态(尚未推送)。
我想完全忽略这些提交并返回,就好像它们从未提交过一样。
执行回滚似乎只会删除最后一次提交。
我怎样才能完成这个简单的任务?
【问题讨论】:
标签: mercurial tortoisehg
在设置中启用mq 或strip 扩展,然后在变更集上下文菜单中使用Modify History -> Strip
【讨论】:
mq
hg strip 中没有启用 MQ
v3.2.3(最新的稳定版)中让它消失了。 dropbox.com/s/xpwgx0bhqo0qhb3/… --- 这是任意变更集的上下文菜单的屏幕截图(我想在那里看到菜单项)
mq 扩展程序后的屏幕截图:dropbox.com/s/3gh5be2v8crmhvj/… 所以,嗯,我不确定你如何让它工作没有它的 TortoiseHG
在最近的一个 mercurial(我认为是 v2.8 之后)中,您可以使变更集过时,从而将它们从大多数视图中隐藏起来,但如果您发现需要它们,它们仍然存在。这是做你想做的事情的推荐方式。
假设最近的变更集是 132,最新的好的变更是 130。只需像这样废弃变更集 131 和 132:
hg prune -r 131::132
再简单不过了(只要确保当前父级不是不需要的变更集之一)。
如果您想查看过时变更集的内容,只需将 --hidden 添加到普通命令行,例如:
hg log -r 120::132 --hidden
注意。 Tortoise 具有查看过时变更集的功能,但我认为它还没有能力使它们过时。
【讨论】:
两次错误提交可以回滚两次
跟进与@zerkms 的讨论
MQ 在 2.8 之前包含到 Mercurial (TortoiseHG) 的条带。现在是independent extension,必须在没有 MQ 的扩展(参见 1)中启用(参见 2)
之后,Strip 将出现在变更集的上下文菜单的“修改历史”菜单中
【讨论】: