How do you “rollback” last commit on Mercurial?

隐身守侯 提交于 2019-12-03 05:23:35

问题


I have a Mercurial repository that I use in local only... It's for my personal usage (so I don't "push" anywhere).

I made a commit with 3 files, but after that I understood that I should do commit 4 files...

Is there a way to "rollback" my last (latest, only one) commit, and "recommit" it with the correct files?

(I don't know why, but my "Amend current revision" option is not active, so I can't use it...)


回答1:


You just need this command:

hg rollback

See: http://hgbook.red-bean.com/read/finding-and-fixing-mistakes.html.

(Technically, this is deprecated as of version 2.7, August 2013, but I've yet to see an alternative that does exactly the same thing.)




回答2:


The answer is strip (if you don't have it enabled you can check how to enable it here: https://stackoverflow.com/a/18832892/179581).

If you want to revert just the latest commit use:

hg strip --keep -r .

If you want to revert to a specific commit:

hg strip --keep -r 1234

Using strip will revert the state of your files to the specified commit but you will have them as pending changes, so you can apply them together with your file to a new commit.

Recover your stripped data:

If you miss-used the command or you want to recover your changes you can find your stripped files in the .hg/strip-backup folder.

Tutorial on how to restore your files, or just google for it (works the same on all OS).

Credit to ForeverWintr




回答3:


In modern hg:

hg uncommit

or, for your exact problem:

hg add file4
hg amend


来源:https://stackoverflow.com/questions/20470874/how-do-you-rollback-last-commit-on-mercurial

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!