我抹掉了所有的工作,不想解释是怎么做的<我只剩下git对象了。更重要的是,我想恢复一些丢失的图像文件。根据对象文件的大小,我可以判断它们是哪一个。有没有办法把它们变成可用的文件?>
第一件事:备份!然后制作备份的副本
如果git对象仍在正确的目录(.git/objects/xx/xxx…
(中,则可以使用git fsck --full
让git发现它们——它可能会列出存储库中的每个对象。现在查找标记为commit
和tag
的,它们是您想要恢复的。
我可能会使用一个脚本,为找到的每个提交对象创建一个分支(例如,简单地递增数字rescue-1
、rescue-2
等(。然后使用gitk --all
可视化所有分支,并选择顶部(最近的(分支。在那里创建一个新的分支CCD_ 8。
签出新的master分支并运行git branch --no-merge
。您应该得到一个分支提交的列表,而不是包含在master中。你可能也想给他们一个新的分支名称。
完成后,删除所有编号的rescue-
分支。
希望这能有所帮助,并提供一个起点。