2

在将 git 存储库从 ubuntu 服务器推送到另一个 ubuntu 服务器时,我收到以下错误:

Pushing to gitosis@xxx:yyy
Enter passphrase for key '/home/ngrislain/.ssh/id_rsa': 
Counting objects: 88, done.
Compressing objects: 100% (50/50), done.
error: inflate returned -551), 22.15 MiB | 1.13 MiB/s   
error: pack-objects died of signal 13MiB | 1.10 MiB/s   
error: failed to push some refs to 'gitosis@xxx:yyy'

我的磁盘未满,我仍然可以拉...有人明白吗?

谢谢,

4

1 回答 1

1

简短的回答:您的远程存储库已损坏。

git 存储库中的大多数对象(提交、旧文件内容等)都打包在 .pack 文件中。每当 git 需要访问这些对象时,它首先需要解压缩它们。如果打包文件损坏,git 将不再能够访问这些对象并且不高兴。

您尝试推送到远程存储库,该存储库似乎包含这样一个损坏的包文件。远端需要解压,但无法解压。因此它无法整合您的推送。

您需要修复远程存储库。由于 git 是一个分布式 VCS,一种方法是通过从您自己的存储库克隆来在服务器上创建一个新存储库。

根据您感兴趣的详细程度,您还可以查看git-unpack-objects的手册页或 zlib.c 中的 git 源代码int git_inflate(...),其中包含对 inflate 的失败调用。

还有一个关于如何修复损坏的存储库的GitFaq 。

于 2013-01-19T20:55:34.880 回答