Git push报错the remote end hung up unexpectedly 常用方案无效怎么办
Git push 报错
RPC failed; curl 55 Failed sending data to the peer 解决方案 核心原因说明
你已经尝试过调整http缓冲区和http版本的常规方案未生效,该报错还存在以下几类常见诱因:
- 本地分支拉取同事变更后,提交线和远程存在分叉,未完成正确合并
- 网络代理配置异常,导致传输中断
- 提交包含大体积文件超出远程仓库限制,或单次推送的提交体积过大
- 本地git凭证或远程仓库权限异常
分步解决方案
- 第一步先校验本地分支状态:
执行git status确认无未提交的变更,再执行git pull origin main --rebase用变基模式拉取远程最新内容,避免多余的合并节点导致提交线分叉,操作完成后重试推送。 - 排查代理配置问题:
执行git config --global --get http.proxy查看当前是否配置了代理,若不需要代理可执行git config --global --unset http.proxy清除代理配置后重试;若需使用代理,确认代理地址、端口、认证信息均正常可用。 - 拆分提交分批推送:
执行git log获取你两个commit的哈希值,先推送更早的那个commit:git push origin <早提交的哈希值>:main,推送成功后再推送第二个commit,降低单次推送的体积。 - 更换传输协议:
将当前使用的http/https协议更换为ssh协议,执行git remote set-url origin git@<你的仓库域名>:<命名空间>/<仓库名>.git替换远程仓库地址,配置好本地ssh公钥后重试推送。 - 重置分支重新应用提交:
如果以上方案均无效,可执行git stash暂存本地未提交的修改,再执行git reset --hard origin/main将本地分支和远程分支完全同步,之后用git cherry-pick <你的第一个commit哈希> <你的第二个commit哈希>将你的两个提交重新应用到最新分支上,完成后重试推送。
内容的提问来源于stack exchange,提问作者prayner
相关产品推荐
相关产品推荐

