我不小心做了“汞承诺--amend”,而不只是提交。我怎么可以回滚承诺前的修改?
注意:这个答案现在已经过时。从@Sorina三都见the answer代替。
见hg help commit
,在那里说:
该--amend标志可用于修改工作目录的父与新提交包含除目前由“汞状态”报道那些在父母的变化,如果有任何。老犯存储在“.hg /条备份”备份包(参见‘汞帮助捆绑’,并就如何恢复它‘汞帮助松绑’)。
您可以使用hg reflog
(从journal extension)和hg reset <hash>
。
hg reflog -v
应该看到这样的信息:
<old-hash> -> <new-hash> <user> <timestamp> commit --amend <some-path>
如果是这样的修改要恢复,只需使用:
hg reset <old-hash>
该承诺将恢复到什么是以前是并进行了修改,现在应该是未提交更改的变化(检查使用hg status
和hg diff
)。
.hg/strip-backup
目录最新保存的备份hg unbundle .hg/strip-backup/<latest backup>
histedit
扩展,你可以做hg histedit
它以改变(例如,以实现国家的承诺之前,即选择edit
的时候可以看到使用hg diff
所有更改)。不要忘了剥离老脸。
如果你的Mercurial版本够新,我相信你应该能够从hg unamend
分机使用uncommit
命令附带水银。这可能需要报废标志的启用,我不知道。
uncommit
扩展,添加到您的~/.hgrc
:
[extensions]
uncommit =
hg unamend