我把所有的工作都搞砸了,不想解释具体原因。
我现在只剩下git对象。我最希望能够恢复一些已经打包好的图像文件。从对象文件的大小可以看出它们是哪些文件。有没有办法将它们变回可用的文件?
我现在只剩下git对象。我最希望能够恢复一些已经打包好的图像文件。从对象文件的大小可以看出它们是哪些文件。有没有办法将它们变回可用的文件?
如果git对象仍然位于正确的目录中(.git/objects/xx/xxx…
),您可以使用git fsck --full
让git发现它们,它可能会列出存储库中的每个对象。现在寻找标记为commit
和tag
的对象,这些是您要恢复的对象。
我可能会使用脚本为找到的每个提交对象创建一个分支(例如,简单地增加数字rescue-1
、rescue-2
等)。之后使用gitk --all
可视化所有的分支并选择顶部(最近的)分支,在那里创建一个新的分支rescued-master
。
检出您的新主分支并运行git branch --no-merge
。您应该得到一个列出了已经分叉但不包含在主分支中提交的列表。您可能还想为它们命名一个新的分支。
完成后,删除所有编号的rescue-
分支。
希望这有所帮助,并提供一个起点。