在将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'
我的磁盘不满,我还是可以拉... 有谁理解这个?
谢谢,
答案 0 :(得分:1)
简短回答:您的远程存储库已损坏。
git存储库中的大多数对象(提交,旧文件内容等)都打包在.pack文件中。每当git需要访问这些对象时,首先需要解压缩它们。如果打包文件已损坏,git将无法再访问这些对象并且不满意。
您尝试推送到远程存储库,该存储库似乎包含这样一个损坏的包文件。 远程端需要打开包装,但无法这样做。因此,它无法整合你的推动。
您需要修复远程存储库。由于git是一个分布式VCS,一种方法是通过从您自己的存储库中克隆来在服务器上创建一个新的存储库。
根据您感兴趣的详细程度,您还可以查看git-unpack-objects的手册页或zlib.c中的git源代码int git_inflate(...),其中包含对膨胀的失败调用
如何修复损坏的存储库还有一个GitFaq。