我正在研究一个项目并遇到硬件故障。在发生这种情况之前,我有大约30次提交我没有推动。我从崩溃中恢复并检查了我的回购。我现在从git status
收到此错误消息。
error: object file .git/objects/a8/f43fd5a872feda2a771e6a1ced1518f455d9f3 is empty
error: unable to find a8f43fd5a872feda2a771e6a1ced1518f455d9f3
error: object file .git/objects/a8/f43fd5a872feda2a771e6a1ced1518f455d9f3 is empty
fatal: loose object a8f43fd5a872feda2a771e6a1ced1518f455d9f3 (stored in .git/objects/a8/f43fd5a872feda2a771e6a1ced1518f455d9f3) is corrupt
如何删除此空对象而不从HEAD收到错误消息?
我尝试手动删除坏对象,但遇到了这个错误:
fatal: could not parse HEAD
提前谢谢。
答案 0 :(得分:1)
谢谢Makato。我投了你的评论。 我想出了自己快速而又肮脏的解决方案。
我去了〜/ my_project / .git / logs / refs / heads / 在该目录中使用sublime文本编辑器打开名为:master的文件 (此文件包含提交历史记录)
我去了最后一行代码。它包含NULL,NULL,NuLL一遍又一遍地重复。我删除了它并保存了文件。
在提交的最后一行中,您将看到2个提交字符串,每个字符串中包含40个字符。我复制了第二个字符串。
我接下来去了这个目录。 〜/ MY_PROJECT / git的/裁判/头 在该目录中使用sublime文本编辑器打开名为:master的文件 (此文件包含历史记录中的最后一次提交)
我粘贴了之前复制的提交字符串并保存了文件。
我运行了一个git状态,它表示我的分支在29次提交之前超过了origin / master。
我推了我的提交。
执行另一个git提交,并提交应该在该损坏提交中进行的更改。
现在我回到了我离开的地方。
我希望这有助于任何遇到此问题的人。