上台工作.当我不在回购的尖端时回滚了.丢失的文件.寻找相当于保存我的工作的git reflog.
长:所以我完成工作,然后提交.
$ hg commit -A
[...]
adding media/js/fbfriends.js
removing media/js/streams.js
adding media/js/templetizer.js
[...]
$ hg log
$ hg log
changeset: 10:ce3ad416d9a5
tag: tip
user: Mihai
date: Sat Sep 10 22:34:35 2011 -0700
summary: Save all.
changeset: 9:ceacb7b2192a
user: Mihai
date: Sat Sep 10 22:25:34 2011 -0700
summary: Mootools update.
[...]
Run Code Online (Sandbox Code Playgroud)
一些浏览:
$ hg checkout 8
Run Code Online (Sandbox Code Playgroud)
好的.然后我想改变修订版10.愚蠢的是,我这样做:
$ hg rollback
rolling back to revision 9 (undo commit)
$ hg status
[...]
M media/js/mootools.js
R media/js/streams.js
! media/js/fbfriends.js
! media/js/templetizer.js
[...]
Run Code Online (Sandbox Code Playgroud)
WTF?我的两个文件在哪里?
$ hg log
changeset: 9:ceacb7b2192a
tag: tip
user: Mihai
date: Sat Sep 10 22:25:34 2011 -0700
summary: Mootools update.
[...]
Run Code Online (Sandbox Code Playgroud)
好的,我会找出.orig文件:
$ hg revert --all
[...]
undeleting media/js/streams.js
forgetting media/js/templetizer.js
reverting media/js/mootools.js
[...] // media/js/fbfriends.js doesn't even show up
$ hg status
? media/js/mootools.js.orig
$ hg history
changeset: 9:ceacb7b2192a
tag: tip
user: Mihai
date: Sat Sep 10 22:25:34 2011 -0700
summary: Mootools update.
Run Code Online (Sandbox Code Playgroud)
NOOOOOO!当我做回滚的时候,我已经因为提交8而被皇室震惊了.恢复尝试失败:
$ hg checkout 10
8 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ find -name temp
$ hg checkout 9
30 files updated, 0 files merged, 63 files removed, 0 files unresolved
$ find -name temp
$ hg checkout ce3ad416d9a5
abort: unknown revision 'ce3ad416d9a5'!
$ hg checkout ceacb7b2192a
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ find -name temp
$
Run Code Online (Sandbox Code Playgroud)
但是,但是......我把它推进去了!它应该仍然在.hg的某个地方?救命?
git reflog,git checkout blah在几个实例中救了我,但是有没有任何多变的等价物?
编辑:总结清楚.EDIT2:更好的头衔.
Ry4*_*ase 11
对不起,他们走了.
该rollback命令的帮助摘要是:
roll back the last transaction (dangerous)
Run Code Online (Sandbox Code Playgroud)
接着说:
This command should be used with care. There is only one level of
rollback, and there is no way to undo a rollback. It will also restore the
dirstate at the time of the last transaction, losing any dirstate changes
since that time. This command does not alter the working directory.
Run Code Online (Sandbox Code Playgroud)
Rollback是唯一一个删除历史记录的非扩展mercurial命令,并且已经讨论过将它移动到默认禁用的扩展名,就像它类似的破坏性表兄弟strip和purge.
并不是说它现在可以帮到你,但是在将来克隆之前做回滚.或者更好,但做一个backout.Backout会添加一个变化的倒数,产生相同的最终修订版本,但会有更准确的历史记录("我做了这个","我解开了它").