【问题标题】:Git fatal: pack has bad object at offset X: inflate returned -5Git致命:pack在偏移X处有坏对象:inflate返回-5
【发布时间】:2015-02-23 12:41:39
【问题描述】:

Git 给了我一个可爱的圣诞礼物...我正在尝试git push 一堆提交,比如 6 GB。我收到以下错误消息:

-Counting objects: 525, done.
Delta compression using up to 24 threads.
Compressing objects: 100% (474/474), done.
fatal: pack has bad object at offset 3453162391: inflate returned -5
error: pack-objects died of signal 13
error: failed to push some refs to ....git

这是什么意思,如何解决?从谷歌我可以看出这与我要推送的内容的大小有关。

这是在写作时发生的。

【问题讨论】:

  • 你试过用--no-thin选项推送吗?
  • 是的,很遗憾这没有帮助。
  • 你能尝试推送几个提交(比如 HEAD~3),看看是否有帮助?

标签: git zlib inflate


【解决方案1】:

根据您的偏移量,您似乎正在尝试推送一些非常大的对象(偏移量 3453162391 =~ >= 3GB),因此 zlib 未能对对象进行膨胀/压缩,因为存在输出缓冲区空间不足(错误:Z_BUF_ERROR)。

这可能与临时内存不足或某些缓冲区限制有关。基本上它试图使用可用的输出处理尽可能多的输入,否则它返回Z_BUF_ERROR。请参阅:zlib inflate returning a buffer error

你应该重新尝试看看问题是否可以重现。

如果问题是可重复的,请尝试:

  • 避免将大文件推送到 git 存储库,Git 旨在跟踪源代码文件,而不是非常大的文件(如 6GB),

  • 增加客户端上的 git 消息大小 http.postBuffer,例如

    git config http.postBuffer 134217728 # =~ 128MB
    
  • 使用一些可以忽略较大 blob 的替代客户端,例如 bfg,例如

    java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git
    
  • 删除导致问题的对象 (git gc?)。

其他潜在问题可能包括:

如需进一步阅读,请查看此帖子:“pack has bad object” when pushing to remote


如果您想使用 Git 处理大文件,请检查以下内容:

【讨论】:

    猜你喜欢
    • 2019-04-27
    • 2013-12-14
    • 2022-08-15
    • 2014-11-05
    • 1970-01-01
    • 2018-02-14
    • 2012-11-28
    • 2017-01-13
    • 2016-12-12
    相关资源
    最近更新 更多