我有一个Mercurial资料库,只能在本地使用...仅供我个人使用(因此,我不会在任何地方“推送”)。
我提交了3个文件,但之后我知道我应该提交4个文件...
有没有一种方法可以“回滚”我的最后一个(最新的,只有一个)提交,并使用正确的文件“重新提交”它?
(我不知道为什么,但是我的“修改当前修订版本”选项未激活,因此无法使用...)
我有一个Mercurial资料库,只能在本地使用...仅供我个人使用(因此,我不会在任何地方“推送”)。
我提交了3个文件,但之后我知道我应该提交4个文件...
有没有一种方法可以“回滚”我的最后一个(最新的,只有一个)提交,并使用正确的文件“重新提交”它?
(我不知道为什么,但是我的“修改当前修订版本”选项未激活,因此无法使用...)
hg strip --keep -r .
stackoverflow.com/a/19064016/1286571
Answers:
您只需要以下命令:
hg rollback
请参阅:http : //hgbook.red-bean.com/read/finding-and-fixing-mistakes.html。
(从技术上讲,自2013年8月的2.7版起已弃用此功能,但我尚未看到具有完全相同功能的替代方法。)
hg commit --amend
根本不进行更换hg rollback
。虽然可以使用它来添加新更改(或更改消息),但是很幸运,不要添加更改。父级,以及当前由hg状态报告的父级(如果有)。” 该TortoiseHG工作台做一些魔法,让大块的选择“喜欢记录”,这的确可以这样:但就是不使用hg commit --amend
作为一般hg revert
更换。
hg commit --amend
可以用来代替的话,您的评论会更有用hg rollback
。
答案是带状的(如果您未启用它,则可以在此处查看如何启用它:https : //stackoverflow.com/a/18832892/179581)。
如果您只想还原最新的提交,请使用:
hg strip --keep -r .
如果要还原为特定的提交,请执行以下操作:
hg strip --keep -r 1234
使用strip会将文件的状态还原为指定的提交,但是您会将它们作为待处理的更改,因此可以将它们与文件一起应用于新的提交。
如果您错过了该命令或要恢复更改,则可以在.hg / strip-backup文件夹中找到已剥离的文件。