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

执行git push报错RPC failed,代码无法正常推送如何解决?

Git push RPC failed报错解决方案

报错说明

你遇到的报错内容如下:

Enumerating objects: 2486, done.
Counting objects: 100% (2486/2486), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2154/2154), done.
error: RPC failed; curl 55 SSL_write() returned SYSCALL, errno = 32
fatal: the remote end hung up unexpectedly
Writing objects: 100% (2407/2407), 138.79 MiB | 4.73 MiB/s, done.
Total 2407 (delta 511), reused 0 (delta 0)
fatal: the remote end hung up unexpectedly
Everything up-to-date

原因

这个报错本质是单次推送的数据包大小超过Git默认HTTP传输缓存阈值,或者网络波动导致SSL连接中断,1.3GB的大仓库单次提交压缩包超过100MB时非常容易触发该问题。

解决方法

1. 调整HTTP传输缓存大小

执行以下命令将Git全局HTTP缓存上调到500MB,足够覆盖本次138MiB的传输需求:

git config --global http.postBuffer 524288000

如果后续有更大的提交需求,可以将数值调整为1073741824,把缓存上限提升到1GB。

2. 拆分提交分批推送

如果调整缓存后仍然报错,说明当前网络无法支撑单次传输过大的包,拆分提交逐个推送即可:

  • 先查询当前分支和远程分支的分叉提交哈希
  • 按提交时间从早到晚逐个推送:git push origin [提交哈希]:[对应分支名]

3. 清理仓库冗余体积

仓库总大小超过1GB后会频繁触发各类推送异常,建议定期清理冗余内容:

  • 把日志、压缩包、依赖包等非必要大文件加入.gitignore,避免被提交到仓库
  • 用git filter-repo工具清理历史提交中的大文件,缩减仓库整体大小

4. 切换SSH协议传输

HTTP协议对大文件传输的兼容性较差,切换为SSH协议可以大幅降低此类问题出现的概率:

  • 查看当前远程仓库地址:git remote -v
  • 将远程地址修改为SSH格式:git remote set-url origin [你的仓库SSH地址]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:09:03