git server error: corrupt loose object on remote

git server error: corrupt loose object on remote

我的回复有误 git fsck --full 这是 corrupt 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/

我认为它是一个损坏的对象。虽然慢,但你可以试试这个代码:

git gc --aggressive --prune=now

还有 Linus Torvalds 编写的关于类似错误和重建 blob 的文档:click here.

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