向GitHub推送项目时遭遇远程挂断错误,请求问题排查与解决
解决Git推送时的RPC failed & remote end hung up错误
这个问题我碰到过好多次了,从你给出的错误信息来看,核心问题是推送的数据量过大或者Git默认的HTTP传输缓存设置不足以处理这么大的推送包,导致中途连接被断开。咱们一步步来排查解决:
解决方案1:调整Git的HTTP推送缓存大小
你的推送包达到了45.18 MiB,Git默认的HTTP缓存可能不够用,先把缓存调大:
# 设置为500MB(对应字节数524288000) git config --global http.postBuffer 524288000 # 或者直接设置为1GB git config --global http.postBuffer 1073741824
设置完成后,重新执行推送命令:
git push -u origin main
解决方案2:检查并处理超大文件
GitHub限制单文件大小不能超过100MB,若项目里有接近或超过该阈值的文件,需要用Git LFS来管理:
- 先安装Git LFS(如果还未安装)
- 追踪你的大文件(把示例中的
.zip换成你实际的大文件后缀):
git lfs track "*.zip"
- 重新提交相关文件:
git add .gitattributes git add . git commit --amend --no-edit # 也可以新建commit:git commit -m "add LFS tracked files"
- 再次尝试推送
解决方案3:切换到SSH协议推送
HTTPS协议在传输大文件时容易出现连接不稳定的情况,换成SSH协议试试:
- 删除原来的HTTPS远程仓库:
git remote remove origin
- 添加SSH地址的远程仓库:
git remote add origin git@github.com:username/repo.git
- 执行推送命令
解决方案4:拆分提交分批推送
如果上面的方法都无效,试试把提交拆成小批次,先推小文件再处理大文件:
- 先添加并推送小文件:
git add 小文件路径1 小文件路径2 git commit -m "push small files first" git push -u origin main
- 再单独处理大文件部分,重复添加、提交、推送步骤
错误原因解释
你看到的error: RPC failed; curl 18 transfer closed with outstanding read data remaining和fatal: the remote end hung up unexpectedly,本质是因为推送的数据包过大,GitHub服务器端或本地网络中途断开了连接,调整缓存、用LFS管理大文件、换协议都是围绕解决这个核心问题来的。
内容的提问来源于stack exchange,提问作者Ilham Bagus Bahrudin
相关产品推荐
相关产品推荐

