有人在错误的分支上提交了代码,所以我尝试将该提交移动到另一个分支。但是当我尝试回滚该提交时,出现了以下错误:
[user@server gitrepo]$ git reset --hard 9c2de3c0
fatal: unable to read tree 9c2de3c0af09fc07a84ff84b594beb5a6d489181
对象看起来很好:
[user@server gitrepo]$ ls objects/9c/2de3c* -al
-r--r--r-- 1 git git 222 Aug 28 12:09 objects/9c/2de3c0af09fc07a84ff84b594beb5a6d489181
为什么它无法读取这个对象,我该怎么办?
编辑:为了区别于其他问题:
- Git的数据库似乎并不特别混乱。 运行
git fsck -full
仅显示少量(〜20个)悬空blob和一个悬空提交。 看起来并不是特别令人担忧。
broken link
。当我运行git fsck
时,我没有这样的错误。 - doub1ejackgit cat-file -t 9c2de3c0
显示什么?git cat-file -p 9c2de3c0
显示什么?(我怀疑至少其中一个会失败,但是值得尝试一下)git cat-file -t 9c2de3c0
= 'commit' 2)git cat-file -p 9c2de3c0
= 我的消息,'MODULE: added similarterms (MM)' - doub1ejack