首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何诊断和修复git致命的:无法读取树

如何诊断和修复git致命的:无法读取树
EN

Stack Overflow用户
提问于 2014-01-01 16:54:48
回答 6查看 113.5K关注 0票数 73

我正在使用git来管理项目上的文件,并不断地遇到这个问题。

当我运行git status时,我会收到消息

代码语言:javascript
运行
复制
fatal: unable to read tree e2d920161d41631066945a3cbcd1b043de919570

据我所知,我应该检查git fsck的输出,然后收到

代码语言:javascript
运行
复制
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的想法,我想试着了解正在发生的事情。我如何诊断和解决这个问题?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-01-04 07:55:44

按照我的旧建议,它归结为能够找到一个实际包含缺失元素的回购(这里是完整的树)。

这就是"如何修复损坏的git存储库?“中显示的内容。

但是,如果一个完整的克隆不能解决这个问题,那么它可能是:

更新2016年7月,Git 2.10即将发布,您现在有:

代码语言:javascript
运行
复制
git fsck --name-objects

有关更多信息,请参见"如何修复从一棵树到另一棵树的断裂链接?“。

票数 51
EN

Stack Overflow用户

发布于 2014-01-06 02:27:57

我将从一个新的克隆开始,然后在未更改的、未碰过的克隆上运行git fsck。我想知道(如上面所示)您的初始克隆是否已损坏,但在使树成为孤儿之前,您可以执行一些操作。

票数 8
EN

Stack Overflow用户

发布于 2016-08-04 17:41:05

刚刚对我起作用的东西是把我的更改藏起来,做一个git拉,然后从隐藏堆栈中弹出这些更改。我的腐败可能相当肤浅,所以它可能不会对每个人都有效,但值得一试。

这是我藏起来时得到的输出:

代码语言:javascript
运行
复制
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。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20870895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档