我有一个Mercurial存储库,我只在本地使用...这是我的个人用法(所以我不会“推”到任何地方)。
我提交了3个文件,但之后我明白我应该提交4个文件......
有没有办法“回滚”我的最后(最新的,只有一次)提交,并“重新发送”正确的文件?
(我不知道为什么,但我的“ Amend current revision ”选项未激活,所以我无法使用它...)
答案 0 :(得分:85)
您只需要此命令:
hg rollback
请参阅:http://hgbook.red-bean.com/read/finding-and-fixing-mistakes.html。
(从技术上讲,从2013年8月的2.7版开始,这个版本已被弃用,但我还没有看到一个完全相同的替代方案。)
答案 1 :(得分:26)
答案是 strip (如果你没有启用它,你可以在这里查看如何启用它:https://stackoverflow.com/a/18832892/179581)。
如果您只想恢复最新的提交使用:
hg strip --keep -r .
如果您想恢复特定提交:
hg strip --keep -r 1234
使用strip会将文件的状态恢复为指定的提交,但您将把它们作为挂起的更改,这样您就可以将它们与文件一起应用到新的提交中。
如果您错过了使用该命令,或者想要恢复更改,可以在 .hg / strip-backup 文件夹中找到已剥离的文件。
Tutorial on how to restore your files, or just google for it (works the same on all OS).
归功于ForeverWintr
答案 2 :(得分:2)
现代hg:
hg uncommit
或者,对于您的确切问题:
hg add file4
hg amend