-1

我有一个错误响应, git fsck --fullcorrupt loose object '...' 位于 git 服务器机器上。我没有本地存储库。我无法克隆。我在 repo/objects/... 中没有对象

您对如何解决此问题有任何想法吗?该对象不在 repo.git/objects 目录中。我可以在服务器机器内 ssh。

任何建议都受到高度赞赏。谢谢

编辑

我试过了

git gc --prune

但我收到同样的错误

error: inflate: data stream error (invalid distance code) error: corrupt loose object '4e4c................' fatal: object 4e4c............. is corrupted error: failed to run repack

编辑 2

git gc --aggressive --prune=now

给了我同样的错误,也

git gc --aggressive --prune=all

git ls-tree 4e4cc....

我有同样的错误

编辑 3

我找到了最后一次提交的本地仓库(10GB),我可以推送到远程(20GB)。我也可以从那个地方拉。为什么它们的大小不同?我仍然无法克隆...而且 obj 4e4c............. 不在 .git/objects/ 中

4

2 回答 2

0

我认为它是一个损坏的对象。虽然速度很慢,但您可以尝试以下代码:

git gc --aggressive --prune=now

还有一个由 Linus Torvalds 编写的关于类似错误和重建 blob 的文档:单击此处。

于 2015-11-18T09:56:27.667 回答
0

我已经解决了这个问题。Git 存储一个像 4e4cfe... 这样的对象,创建一个目录 4e (ex.repo/objects/4e/) 并将对象 4cf3... 放在该目录中。我正在寻找对象 4e4cfe...,当然,我找不到它。但是该对象已损坏,但我在本地存储库中找到了一个好对象(在 git fsck --full -v 之后),我只是将它复制到远程存储库中。所以最后要解决这个问题,你需要一个简单的“复制和粘贴”。

于 2015-11-22T09:23:06.267 回答