我还有一个没有初始提交的git rm -rf
的例子。 (我意识到我添加了许多无用的文件,并希望添加一些过滤器。)
现在我留下了23000个没有树的摇晃的斑点,但是有完整的Git历史!
我将使用脚本循环遍历blobnames(使用git show 'blobname' > 'filename'
),但是我可以将历史记录中的这些文件名与blob相关联吗?
答案 0 :(得分:2)
对于所有做过/将会犯下我所犯错误的人,这就是故事的结尾。
首先,简要总结一下我的所作所为。
gid add .
git rm -rf
的目的是在.gitignore中添加一些过滤器我尝试了各种数据恢复工具;没运气。 我能做的最好的是以下程序。
git fsck --lost-found
可能带有--unreachable --cache
.git/lost-found/other
(大部分?)
重新创建原始文件,但没有文件名。现在的问题是
如何恢复文件名。不幸的是,我恢复的所有文件都是blob,没有root,所以我没有关于目录树结构的信息。file
来查看文件的类型(file <filename>
),并为其附加相应的扩展名。文件名与文件名匹配的问题仍然存在
或者,可以使用蛮力。例如,为了恢复pdfs,我按长度对恢复的文件进行了排序,附加了一个.pdf扩展名,然后逐个查看它们。实际pdf文件显示了一些内容,其他文件没有显示。