我犯了一个错误,用“rm -rf project”这个快捷命令删除了我的整个项目目录。
当然,.hg 目录也随之消失。我有大约 15-20 个变更集,尚未推送给任何人,我真的很想找回它们。
该系统是一台Ubuntu机器,发生删除的分区是ext3,该项目主要由PHP文件组成。
我知道不写入相关磁盘的指导原则。
第一个想法是使用名为 scalpel 的工具,找回 PHP 文件,并将它们与存储库中的当前版本进行比较,然后以某种方式删除更改。虽然成功了,但它没有恢复文件名(或者我遗漏了一个开关),所以我只剩下几千个按顺序命名的 .php 文件,梳理它们不是一个选择。
有好心人可以救救我吗,并建议一种方法:
a) 取回 repo,或者
b) 获取文件及文件名
对于那些想知道我怎么会做出这么愚蠢的事情的人来说:
我正在 Vim 中处理一个文件,我想将其从存储库中删除:
:!hg rm% 复制代码
这抱怨该文件位于子存储库中,因此我指定了以下内容:
:!hg rm % -R 引擎
它抱怨文件有修改,使用 -f 强制修改。这时,我不知怎么地编写了以下命令:
:!rm -rf % -R 引擎
不知何故,看到“force”让我反射性地做了一个 rm -rf。
答案1
如果手术刀有效的话,这不太可能有帮助,但你可以尝试: http://www.gnu.org/software/ddrescue/ddrescue.html
根据我的经验,如果您永久删除了它(即在 Windows 中按 shift+delete,在 Linux 中按 rm -rf),您只能进行原始恢复。
原始恢复通常只能确定文件的类型,有时还可以确定最后编辑的日期。
我认为如果不进行大量的侦查和重建工作,你可能会倒霉。
祝你好运!