我还有另一个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>
),并为其附加相应的扩展名。将文件与文件名匹配的问题仍然存在。祝你好运!