【问题标题】:Recovering files from Git objects从 Git 对象中恢复文件
【发布时间】:2011-09-26 13:51:31
【问题描述】:

我抹杀了我所有的作品,不想解释是怎么做的。
我唯一剩下的就是 git 对象。然后我想恢复一些丢失的打包图像文件。从目标文件的大小我可以知道它们是哪些。有没有办法将它们变成可用的文件?

【问题讨论】:

  • 只有 git 对象?没有参考/分支/标签?第一件事:备份

标签: git object recovery


【解决方案1】:

第一件事:做好备份!然后处理该备份的副本。

如果 git 对象仍在正确的目录中 (.git/objects/xx/xxx…),您可以使用 git fsck --full 让 git 发现它们——它可能会列出存储库中的每个对象。现在寻找标记为committag 的那些,这些是您要恢复的。

我可能会使用一个脚本,为找到的每个提交对象创建一个分支(例如,简单地增加数字rescue-1rescue-2 等)。然后使用gitk --all 可视化您的所有分支并选择顶部(最新)的分支。在那里创建一个新分支rescued-master

签出您的新主分支并运行git branch --no-merge。你应该得到一个分支提交的列表,而不是包含在master中。你可能也想给他们一个新的分支名称。

完成后,删除所有编号为rescue- 的分支。

希望能有所帮助并提供一个起点。

【讨论】:

    猜你喜欢
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 2013-06-12
    相关资源
    最近更新 更多