尝试克隆存储库的无效对象

时间:2011-12-23 03:19:08

标签: git

git version 1.7.7.4

我从我的git存储库中克隆了,我收到了以下错误:

remote: fatal: failed to read object a89f72f06a1f6f56f924b0e8ae9e33f477da8fcd: Invalid argument
error: git upload-pack: git-pack-objects died with error.
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
fatal: index-pack failed

所以我去了存储库本身检查,我得到了这个:

git fsck
fatal: failed to read object 1aea37c864c6b5d0d60d6fc38117bc420671b692: Invalid argument

然后,我尝试解决问题:

git gc --prune
fatal: failed to read object a89f72f06a1f6f56f924b0e8ae9e33f477da8fcd: Invalid argument
error: failed to run repack

无论如何我可以解决这个问题吗?

非常感谢,

1 个答案:

答案 0 :(得分:1)

Git将所有内容表示为对象集合,可以是磁盘(作为松散对象),也可以是打包(作为压缩对象)。在克隆时,git遍历整个历史记录以确定要发送的对象。如果一个对象丢失,这是坏消息 - 错误消息是正确的,存储库可能已损坏(松散的对象已丢失或可能是整个包)。

您可能有机会尝试克隆其他分支。如果步行者没有遇到那个丢失的物体,你会没事的。如果你感到疯狂,你可以深入了解git存储数据结构,看看你是否可以手动修补历史记录(这将是难以置信的难度,但并非不可能)。

否则 - 这是git。如果你最近制作了任何克隆,那么恭喜你,你有一个完整的备份。从您的克隆仓库中推送,将填写缺失的对象。

祝你好运。

相关问题