我正在使用git
来管理项目上的文件,并不断地遇到这个问题。
当我运行git status
时,我会收到消息
fatal: unable to read tree e2d920161d41631066945a3cbcd1b043de919570
据我所知,我应该检查git fsck
的输出,然后收到
broken link from tree e09a42f248afff64336fbbec2523df97c26451ac
to tree e2d920161d41631066945a3cbcd1b043de919570
broken link from tree e09a42f248afff64336fbbec2523df97c26451ac
to tree 9b0dd389bd7f9e8d257395d57e0881b7957f9698
broken link from tree e09a42f248afff64336fbbec2523df97c26451ac
to tree 9e288a4ad60d63f342dfd18237980674426aa725
broken link from tree e09a42f248afff64336fbbec2523df97c26451ac
to tree 2a04647337089f554fab8c49cfd37149e5f4fc9f
broken link from tree e09a42f248afff64336fbbec2523df97c26451ac
to tree ea16658b45ce961adc3c3f519b0e8d9672918ca8
以及大量的missing blob
消息。
在各种资源(例如断掉的链接,缺失的树木和悬空的树木)之后,我简单地从github
重新克隆了该项目,并重新启动。
一旦我重新克隆了这个项目,对于一些commit
来说一切都是好的,然后问题再次出现。每次重新克隆似乎都不是最优的,而且似乎违背了使用git
的想法,我想试着了解正在发生的事情。我如何诊断和解决这个问题?
发布于 2014-01-04 07:55:44
按照我的旧建议,它归结为能够找到一个实际包含缺失元素的回购(这里是完整的树)。
这就是"如何修复损坏的git存储库?“中显示的内容。
但是,如果一个完整的克隆不能解决这个问题,那么它可能是:
更新2016年7月,Git 2.10即将发布,您现在有:
git fsck --name-objects
有关更多信息,请参见"如何修复从一棵树到另一棵树的断裂链接?“。
发布于 2014-01-06 02:27:57
我将从一个新的克隆开始,然后在未更改的、未碰过的克隆上运行git fsck
。我想知道(如上面所示)您的初始克隆是否已损坏,但在使树成为孤儿之前,您可以执行一些操作。
发布于 2016-08-04 17:41:05
刚刚对我起作用的东西是把我的更改藏起来,做一个git拉,然后从隐藏堆栈中弹出这些更改。我的腐败可能相当肤浅,所以它可能不会对每个人都有效,但值得一试。
这是我藏起来时得到的输出:
work@home ~/code/project $ git stash
fatal: unable to read tree 5fd5f4d0425b42e5b478773fa643dd6fd4918188
fatal: unable to read tree 5fd5f4d0425b42e5b478773fa643dd6fd4918188
Saved working directory and index state WIP on master: d93430c Generic commit msg.
HEAD is now at d93430c An older generic message.
从那以后,我拉了起来,然后又弹了出来,它自己清理干净了。再说一次,YMMV。
https://stackoverflow.com/questions/20870895
复制相似问题