Git重置=致命错误:无法读取树

8

有人在错误的分支上提交了代码,所以我尝试将该提交移动到另一个分支。但是当我尝试回滚该提交时,出现了以下错误:

[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

为什么它无法读取这个对象,我该怎么办?

编辑:为了区别于其他问题:


@Gabriele:我看了那篇帖子,但是那个问题及其答案涉及到从提交中的broken link。当我运行git fsck时,我没有这样的错误。 - doub1ejack
  1. git cat-file -t 9c2de3c0 显示什么?
  2. git cat-file -p 9c2de3c0 显示什么?(我怀疑至少其中一个会失败,但是值得尝试一下)
- torek
@torek - 1) git cat-file -t 9c2de3c0 = 'commit' 2) git cat-file -p 9c2de3c0 = 我的消息,'MODULE: added similarterms (MM)' - doub1ejack
你有按照 https://git.wiki.kernel.org/index.php/GitFaq#How_to_fix_a_broken_repository.3F 的步骤进行操作吗? - VonC
请参见:https://dev59.com/PnRA5IYBdhLWcg3w2x2W#22694491 - kenorb
显示剩余2条评论
1个回答

2

我遇到了同样的问题。通过检查和修复磁盘,解决了这个问题。一些文件已经损坏。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接