最近,我在存储库的本地副本中工作,并意外删除了一个文件。自上次hg commit
起,我进行了各种修改,但不知道该怎么做。最后,我访问了bitbucket.org网站,找到了文件,单击Open raw
并通过浏览器下载了该文件。这行得通,但显然不正确。
如果我们调用我删除的文件file.txt
和仓库code-repo
,应该如何使用hg
恢复删除的文件?
(我的系统是基于Ubuntu的。)
答案 0 :(得分:2)
我的理解是您修改了一个源代码控制的文件,但是在将任何修改提交回源代码控制之前,该文件已被删除。
在这种情况下,您必须像对待其他丢失文件的情况一样对待它,它在源代码控制中的事实似乎根本没有帮助(除非列出了一些例外下面)。我将研究您的操作系统/文件系统具有哪些文件恢复功能(例如“垃圾箱”或“回收站”文件夹,如果有的话)。
注意事项-您可能很幸运,并且至少进行了一些更改后,可能会存在某种文件的自动备份或副本。我会寻找:
*。bak或* .orig文件,它们可能是由编辑器或源代码控制工具创建的
Mercurial“架子”(如果您曾经使用过此功能)
Tortoise HG“架子”(如果您曾经使用过此功能)(与标准Mercurial实际不同)
再次检查已编辑的文件在编辑器中仍未打开。 (这为我节省了不止一次!)请小心,如果编辑器显示“此文件已更改,您要重新加载”以单击“否”。
您的temp文件夹中的文件可能恰好是从编辑器自动保存的。查看时间戳,看是否有可能来自正确的时间段。
假设您无法恢复编辑后的文件,至少可以很轻松地返回到hg中的最新版本:
$ hg revert path\to\filename
这将使文件恢复到更改集中的状态,该更改集中是工作文件夹的父级。