You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git执行git push production master时压缩文件后读取对象失败求助

解决Git Push时出现的fatal: unable to read <哈希>和remote: fatal: early EOF错误

我之前也碰到过一模一样的问题,这个错误通常和Git的压缩配置、网络传输中断或者本地仓库对象损坏有关,不用太慌,试试下面这些方案:

先把你遇到的错误信息贴出来方便参考:

Counting objects: 1861, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (1808/1808), done.
fatal: unable to read 58926d52844e79d28435d8ea82bd8c7107e01a48
remote: fatal: early EOF

方案1:检查并修复本地仓库完整性

unable to read的提示大概率是本地某个Git对象损坏了,先执行仓库完整性检查命令:

git fsck --full

如果输出里显示有损坏的对象,你可以尝试从远程仓库重新拉取对应分支的完整数据,或者用其他本地备份的正常对象替换损坏的部分。

方案2:调整Git的压缩与内存配置

高压缩率或内存不足可能导致压缩过程超时,进而触发early EOF。你可以临时降低压缩级别,同时限制打包时的内存使用:

# 关闭压缩(临时解决,之后可改回默认值6)
git config --global core.compression 0
# 限制打包窗口的内存占用
git config --global pack.windowMemory "100m"
# 限制单个pack文件的大小
git config --global pack.packSizeLimit "100m"

设置完成后再尝试推送,能有效减少压缩过程中出现的问题。

方案3:分批次推送代码

如果一次性推送的提交太多、文件体积过大,很容易在传输时中断。可以尝试分批次推送最近的提交:

# 先推送最近10个提交
git push production master~10:master

成功后再逐步推送剩余的提交,直到所有变更都推送到远程。这样每次传输的数据量小很多,不容易触发early EOF。

方案4:清理本地仓库的冗余数据

本地仓库的冗余pack文件可能导致推送数据量异常,执行仓库清理命令优化结构:

git gc --aggressive --prune=now

这个命令会整理仓库、删除无用对象,减少推送时需要传输的数据量。

方案5:检查网络连接或切换推送协议

如果是网络不稳定导致的传输中断,可以试试切换推送协议:比如之前用HTTPS就换成SSH,反之亦然。另外也可以检查网络是否有波动,比如暂时关闭代理再尝试推送。

内容的提问来源于stack exchange,提问作者brunam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:19:05