Git推送报RPC failed; curl 55 Send failure: Connection was aborted如何解决?
报错产生原因
- 核心原因:从日志的
remote: fatal: pack exceeds maximum allowed size提示可以明确,本次推送生成的Git打包文件总大小达到2.25GiB,超出了远端Git仓库设置的单次推送包体积上限,因此远端主动断开连接,触发RPC失败报错。 - 次要可能原因:网络不稳定、Git默认HTTP传输缓冲区设置过小也可能触发同类报错,但该场景下不会出现远端返回的包体积超限提示,你的问题不属于这类情况。
对应解决方法
- 拆分提交分批次推送:如果本次推送包含多个独立提交,不要一次性推送全部内容,拆分成分多次推送即可避免单次打包体积超限。例如需要推送dev分支的全部提交时,可以先推送部分历史提交:
git push origin [前序提交哈希值]:dev,完成后再推送剩余提交。 - 移除误提交的大体积文件:检查本次提交是否包含压缩包、二进制安装包、大体积模型/数据集、运行日志等不适合存放在Git仓库的文件,回退对应提交删除大文件后,再重新提交推送。可以使用
git filter-repo工具清理已经写入提交历史的大文件。 - 调整Git HTTP传输缓冲区:如果排除体积超限问题后仍偶发该报错,可以修改Git的HTTP传输缓冲区上限,执行命令:
git config --global http.postBuffer 1073741824,该命令会将缓冲区调整为1GB,适配大体积内容传输。 - 自建Git服务可调整限制:如果使用的是私有部署的Git服务,可以联系仓库管理员调高远端的单次推送pack体积上限,也可以切换为SSH协议进行推送,SSH对大文件传输的兼容性优于HTTP协议。
内容的提问来源于stack exchange,提问作者Caio Serpa
相关产品推荐
相关产品推荐

