我还有另一个git rm -rf没有初始提交的例子。(我意识到我添加了很多无用的文件并想添加一些过滤器。)
现在我剩下 23000 个没有树的悬空 blob,但有完整的 Git 历史!
我将使用脚本循环遍历 blob 名称(使用git show 'blobname' > 'filename'),但是我可以将这些文件名从历史记录关联到 blob 吗?
我还有另一个git rm -rf没有初始提交的例子。(我意识到我添加了很多无用的文件并想添加一些过滤器。)
现在我剩下 23000 个没有树的悬空 blob,但有完整的 Git 历史!
我将使用脚本循环遍历 blob 名称(使用git show 'blobname' > 'filename'),但是我可以将这些文件名从历史记录关联到 blob 吗?
对于所有曾经/将要犯我所犯错误的人,故事到此结束。
首先,简要总结一下我所做的事情。
gid add . git rm -rf 然后在 .gitignore 中添加一些过滤器我尝试了各种数据恢复工具;没运气。我能做的最好的就是以下程序。
git fsck --lost-found 可能与--unreachable --cache.git/lost-found/other包含所有(大部分?)原始文件的文件夹,但没有文件名。现在的问题是如何恢复文件名。不幸的是,我恢复的所有文件都是 blob,没有根,所以我没有关于目录树结构的信息。file来查看文件的类型 ( file <filename>),并为其附加相应的扩展名。将文件与文件名匹配的问题仍然存在。祝你好运!