Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Mercurial中提交和回滚后恢复丢失的文件。(相当于git reflog?)_Mercurial - Fatal编程技术网

在Mercurial中提交和回滚后恢复丢失的文件。(相当于git reflog?)

在Mercurial中提交和回滚后恢复丢失的文件。(相当于git reflog?),mercurial,Mercurial,承诺的工作。当我不在回购协议的尖端时,我做了一次回退。丢失的文件。寻找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: ti

承诺的工作。当我不在回购协议的尖端时,我做了一次回退。丢失的文件。寻找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.
不!我在做回滚时,因为在commit 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
在几个实例中救了我一命,但是否有任何mercurial等价物

编辑:明确总结。 编辑2:更好的标题。

对不起,它们不见了

回滚
命令的帮助摘要是:

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.
Rollback是唯一一个删除历史记录的非扩展mercurial命令,并且有人谈论过将其移动到默认禁用的扩展,就像它类似于破坏性的同类
strip
purge


这并不是说它现在对您有帮助,而是在将来执行回滚之前进行克隆。或者最好还是做一个
回退
。Backout添加了与更改相反的内容,产生了相同的提示修订,但具有更准确的历史(“我做了这个”,“我取消了它”)。

我不知道为什么人们不在这里评论/回答这个问题,但有一些关于reddit的讨论可能会对您有所帮助:因此,几年后,我正在搜索各种git/mercurial文章,我发现了这个。我还发现2.0以后的版本现在在触发器上有一个安全装置。你仍然可以做你描述的不安全行为,但只能用“-force”。回滚并不意味着“在我们的脑海中,让我们回到过去”,它意味着“我要用刀把它切开。”