无法使用git status修复坏对象HEAD错误

时间:2011-09-11 14:06:39

标签: git

我的电池在推送我的回购时死在我的Macbook上。 现在我无法运行git status

$ git status
fatal: bad object HEAD
fatal: git status --porcelain failed

我已经尝试了一些建议来修复坏对象错误。

$ git fsck --full
dangling tree 65e856976b7aa7c73f15cd71defedb8a3d622a10

我已尝试git prunegit prune-packed

我仍然可以提交,存储,推送,它似乎只是影响git状态

安迪的想法?

由于

6 个答案:

答案 0 :(得分:28)

我猜你已经解决了这个问题但是我已经解决了这个问题并且可以通过运行

来解决它
git pull

这导致了工作条件。如果您的文件完好无损,您应备份本地git目录,然后运行git pull。之后你应该重新开始营业。

如果有文件被删除(不应该发生),你可以将它们复制回工作结账并从那里提交。

答案 1 :(得分:2)

如果您的.git/HEAD已损坏或指向已损坏的对象,则可以手动或git checkout进行更改。

答案 2 :(得分:2)

当我意外地在Eclipse Java项目中添加bin /文件夹时,发生了这种情况。

使用'git pull'对我不起作用。

我修理了:

  1. 关闭Eclipse
  2. rm -rf bin
  3. git rm bin
  4. 然后我能够'git commit'并继续正常。

答案 3 :(得分:0)

尝试在git状态之前添加git add filepath/file.ext所有修改过的文件。

答案 4 :(得分:0)

git checkout -f *branchname*为我工作。

答案 5 :(得分:0)

我遇到了同样的问题,这对我有用:

git fetch origin
git reset --soft origin/master