git fatal: bad object HEAD

发布时间 2023-11-18 17:58:57作者: wenli7363

0 前言

昨天凌晨写了一点代码,结果git status的时候发现报错

codemon@codemon-laptop:~/codes/cpp_pro/Zpods$ git status
error: object file .git/objects/7e/4ba4b1a1d7ab1a9466e9d6f3d2b40199b2ebb3 is empty
error: object file .git/objects/7e/4ba4b1a1d7ab1a9466e9d6f3d2b40199b2ebb3 is empty
fatal: loose object 7e4ba4b1a1d7ab1a9466e9d6f3d2b40199b2ebb3 (stored in .git/objects/7e/4ba4b1a1d7ab1a9466e9d6f3d2b40199b2ebb3) is corrupt

本来改bug已经很烦了,结果又出了这个奇怪的问题。这个问题其实挺好解决的,网上也有挺多的教程,这里我不赘述,因为我引入了另一个问题。

我当时有bug了第一反应是问GPT,然后他让我用

# git检错工具
git fsck --full

# 删除损坏的对象
find .git/objects/ -size 0 -exec rm -f {} \;

# gc工具
git gc

!!结果,Tamade,引入了新的问题,就是git fatal: bad object HEAD,大概就是我HEAD指向的分支有问题。然后我根据教程改了半天,还是有问题。

1 尝试

我根据CSDN上的教程,比如这个可能有用的方法,但是并没有解决我的问题

2 最终解决方法

我最后参考了这篇文章

Git status fatal: bad object HEAD

大概思路就是: 用远端的.git替换本地已经损坏的.git

  1. 从远端git clone你的仓库到另一个地方
  2. cp -r命令将远端的.git文件拷贝到你原来的仓库

** 注意,不要将原来仓库的.git删掉,不然会丢失原来仓库的记录**

这样操作之后,你用git status就是当前本地和远端仓库的差异了

综上所述

一定要养成及时push的好习惯!!!