使用Mercurial,如果你提交,你可以在提交之前回到原始状态吗?

时间:2010-06-19 01:26:43

标签: mercurial dvcs

hg backout tip似乎也将所有文件还原为旧版本。有没有办法可以像提交之前那样将其更改回来 - 也就是说,有几个文件“已修改”但未提交 - 实质上,好像“提交”从未完成?

hg rollback据说非常糟糕,通常不应该用于版本控制目的)

2 个答案:

答案 0 :(得分:3)

hg rollback完全符合您的要求 - 它会撤消hg commit并最终达到您提交之前的状态。

当然,版本控制系统并没有真正意图“丢失”你已经提交的版本,但恢复意外提交很方便。

答案 1 :(得分:2)

当你推,当然,没有工具会做你想要的。话虽如此,如果您想要从本地历史记录删除而不是仅使用hg backout撤消其效果的多个更改列表,则可以使用hg strip,它作为MQ扩展包的一部分提供。

您可以执行以下操作以获得所需效果:

hg export tip > foo.patch

hg strip tip

hg import --no-commit foo.patch