Skip to content

fatal: the remote end hung up unexpectedly

原因一:网络问题(常见)

  • 说明:网络连接不稳定是导致此错误的常见原因之一

  • 解决方案:可以尝试使用代理或VPN来解决,最好设置成全局模式

    shell
    # 查看当前代理设置
    git config --global --get http.proxy
    git config --global --get https.proxy
    
    # 全局 HTTP/HTTPS 代理,7897是本机代理的端口,如我使用的是clash verge,它默认的代理端口是7897
    git config --global http.proxy http://127.0.0.1:7897
    git config --global https.proxy http://127.0.0.1:7897
    
    # 取消全局代理
    git config --global --unset http.proxy
    git config --global --unset https.proxy
    
    # 项目级别的则在项目根目录下的终端执行上述命令,去掉 --global 参数即可,这里不再赘述

    image-20260629085031400

原因二:提交缓存区大小不足(常见)

  • 说明:推送的文件超过了缓存区的大小限制,需要调整缓存区大小

  • 解决方案:设置更大的缓存区

    shell
    # 设置为500MB(你也可以设置更大的值),单位为二进制字节(Windows操作系统、内存常用),1MiB=1048576 字节(B)
    git config --global http.postBuffer 52428800

原因三:文件过大(常见)

  • 说明:如果推送的文件过大,而远程仓库的限制较小,也可能导致出现此错误
  • 解决方案:可以尝试将文件分割成较小的块,或者使用压缩工具(如gzip)减少文件大小

原因四:HTTP/HTTPS协议问题

  • 说明:常见的问题有:HTTP 401(未授权)、HTTP 403(禁止访问)
  • 解决方案:检查认证信息是否正确、联系仓库管理员解决权限问题

原因五:证书验证失败

  • 说明:Git连接服务器时,会检查服务器发过来的“安全证书”,如果服务器使用的是自签名的证书(不是正规机构颁发的),那么可能导致这个问题

  • 解决方案

    1. 临时跳过证书检查(不推荐,但是快)

      shell
      git config --global http.sslVerify false
      
      # 用完后建议恢复原状态
      git config --global --unset http.sslVerify
    2. 正规方案:将公司的自签名证书导入到你的电脑中

原因六:TLS版本过低

  • 说明:你与服务器之间的”加密通话”版本不一致,你用的是一个很老的加密版本(如TLS 1.0),而服务器只接受更新的版本(如TLS 1.2或1.3),服务器感觉不安全,就直接拒接挂断了
  • 解决方案:升级Git版本到最新版本

原因七:远程服务器本身问题

  • 说明:远程服务器本身拒绝连接或超时,可能是代码托管平台正在维护或出了故障等问题
  • 解决方案:延迟一定时间(如半个小时)再尝试推送

MIT版权,未经许可禁止任何形式的转载