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

推送React应用到GitHub仓库报错RPC failed; curl 18该如何解决?

问题成因

  • Git默认的HTTP传输缓冲区配置过小,无法承载推送数据体量导致传输过程中连接被提前中断,本次推送体量仅5.76MiB,该原因的触发概率最高
  • 本地网络到GitHub的链路不稳定,存在丢包、限速或者代理配置异常的情况,触发curl传输中断
  • 本次提交中包含超出GitHub单文件大小限制的资源文件,远程端主动中断了连接
  • 本地仓库与远程仓库的提交记录存在未同步的冲突,远程端拒绝推送后主动断开连接

排查步骤

  • 执行git log origin/main..main查看本地是否存在未同步到远程的提交,确认推送内容有效
  • 执行git ls-files | xargs ls -lh | sort -hr检查本次提交的所有文件大小,排查是否有超过100MB的大文件
  • 执行curl -I https://github.com测试本地到GitHub的网络连通性,确认是否存在网络超时、丢包问题
  • 执行git config --global http.proxy检查本地Git代理配置,确认代理服务运行正常、无速率限制

修复方案

方案1:调高Git HTTP传输缓冲区大小

执行以下命令修改全局配置,将缓冲区调整为500MB:

git config --global http.postBuffer 524288000

修改完成后重新执行推送命令git push -u origin main即可。

方案2:切换SSH协议推送

如果HTTP协议持续出现传输问题,可以将本地仓库的远程地址切换为SSH协议:

git remote set-url origin git@github.com:<你的GitHub用户名>/<你的仓库名>.git

切换完成后重新执行推送即可,注意需要提前在GitHub账户中配置本地SSH公钥。

方案3:拆分提交体量

如果本次提交包含大量文件,可以拆分commit分批推送,避免单次推送数据量过大触发中断:

# 先推送部分提交
git push origin <较早的commit哈希>:main
# 再推送剩余提交
git push origin main

方案4:排查并移除大文件

如果检查发现存在超出限制的大文件,可以使用git filter-repo工具从提交记录中移除该文件后再推送。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 05:54:09