如何使用HG恢复一个已删除的文件

时间:2019-05-23 15:46:40

标签: mercurial

最近,我在存储库的本地副本中工作,并意外删除了一个文件。自上次hg commit起,我进行了各种修改,但不知道该怎么做。最后,我访问了bitbucket.org网站,找到了文件,单击Open raw并通过浏览器下载了该文件。这行得通,但显然不正确。

如果我们调用我删除的文件file.txt和仓库code-repo,应该如何使用hg恢复删除的文件?

(我的系统是基于Ubuntu的。)

1 个答案:

答案 0 :(得分:2)

我的理解是您修改了一个源代码控制的文件,但是在将任何修改提交回源代码控制之前,该文件已被删除。

在这种情况下,您必须像对待其他丢失文件的情况一样对待它,它在源代码控制中的事实似乎根本没有帮助除非列出了一些例外下面)。我将研究您的操作系统/文件系统具有哪些文件恢复功能(例如“垃圾箱”或“回收站”文件夹,如果有的话)。

注意事项-您可能很幸运,并且至少进行了一些更改后,可能会存在某种文件的自动备份或副本。我会寻找:

  • *。bak或* .orig文件,它们可能是由编辑器或源代码控制工具创建的

  • Mercurial“架子”(如果您曾经使用过此功能)

  • Tortoise HG“架子”(如果您曾经使用过此功能)(与标准Mercurial实际不同)

  • 再次检查已编辑的文件在编辑器中仍未打开。 (这为我节省了不止一次!)请小心,如果编辑器显示“此文件已更改,您要重新加载”以单击“否”。

  • 您的temp文件夹中的文件可能恰好是从编辑器自动保存的。查看时间戳,看是否有可能来自正确的时间段。


假设您无法恢复编辑后的文件,至少可以很轻松地返回到hg中的最新版本:

$ hg revert path\to\filename

这将使文件恢复到更改集中的状态,该更改集中是工作文件夹的父级。

相关问题