上班的工作。当我不在回购的尖端时回滚了。丢失的文件。寻找相当于保存我的工作的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.
[...]
有些浏览:
$ hg checkout 8
好。然后我想改变修订版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
[...]
WTF?我的两个文件在哪里????
$ hg log
changeset: 9:ceacb7b2192a
tag: tip
user: Mihai
date: Sat Sep 10 22:25:34 2011 -0700
summary: Mootools update.
[...]
好的,我会找出.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.
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
$
但是,但是......我把它推进去了!它应该仍然在.hg的某个地方?救命?
git reflog
,git checkout blah
在几个实例中保存了我,但是有没有任何类似的内容?
编辑:总结清楚。 EDIT2:更好的头衔。
答案 0 :(得分:11)
抱歉,他们走了。
rollback
命令的帮助摘要是:
roll back the last transaction (dangerous)
继续说:
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.
回滚是唯一的非扩展名mercurial命令,用于删除历史记录,并且已经讨论过如何将其移至默认禁用的扩展名,例如类似破坏性的堂兄strip
和{ {1}}。
不是它现在可以帮到你,但是在将来克隆之前做回滚。或者更好的是改为purge
。 Backout会添加更改的反转,产生相同的最终修订版本,但会有更准确的历史记录(“我做了这个”,“我解除了它”)。