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

Git推送GitHub报remote end hung up unexpectedly错误求助

问题排查思路

首先排除初始猜测的权限问题:如果是无推送权限,终端会明确返回Permission to <仓库地址> denied类的权限拒绝提示,你遇到的报错不属于权限类报错,和原仓库的权限限制无关。
按优先级从高到低排查以下根因:

  • 本地Git仓库对象损坏:克隆他人仓库、修改remote地址的过程中,如果本地存储的Git提交对象出现损坏,推送时Git无法读取对应哈希值的对象,就会触发unable to read <哈希串>的核心报错。
  • HTTPS传输异常:走HTTPS协议推送时,若网络不稳定、Git默认的HTTP传输缓冲区过小,会导致连接被远程端意外断开,触发remote end hung up unexpectedly、sideband packet disconnect类报错。
  • 本地与远程仓库提交分叉:如果你的个人GitHub仓库创建时自动初始化了README、LICENSE等文件,本地和远程存在互不关联的初始提交,推送时没有先同步分叉内容也会导致推送失败。
  • 远程地址配置错误:修改remote地址时如果输错了个人仓库路径,也可能触发连接异常。
对应解决方案

按顺序操作,每完成一步就执行一次git push -u origin main测试推送,成功即可停止后续操作:

  1. 修复本地损坏的Git对象
    在本地仓库根目录执行以下命令,清理无效对象、重建仓库索引、校验完整性:
git gc --prune=now
git fsck --full

git fsck执行后如果仅提示dangling(悬空)的commit、blob对象属于正常现象,不影响推送;如果提示missing object(缺失对象),说明本地仓库损坏严重,建议先备份本地代码文件,重新克隆自己的个人空仓库,再把代码拷贝进去提交推送。

  1. 调大Git HTTP传输缓冲区
    执行以下命令全局调整HTTP POST缓冲区为500MB,解决大包传输时的连接断开问题:
git config --global http.postBuffer 524288000
  1. 同步远程分叉提交
    如果你的个人仓库创建时初始化了文件,执行以下命令合并远程的无关提交历史:
git pull origin main --rebase --allow-unrelated-histories

如果过程中出现代码冲突,按照终端提示解决冲突文件后,执行git add <冲突文件路径>、git rebase --continue即可完成合并。

  1. 校验远程地址配置
    执行以下命令查看当前绑定的远程仓库地址:
git remote -v

确认输出的fetch、push地址均为你自己的个人仓库地址https://github.com/ZpoDavay/zpo.git,如果地址错误,重新执行git remote set-url origin <正确的个人仓库地址>修正即可。

  1. 更换SSH协议推送
    如果HTTPS协议因为网络问题反复推送失败,可以配置SSH密钥后更换为SSH协议推送:
  • 本地生成SSH密钥对,将公钥添加到个人GitHub账号的SSH密钥设置页
  • 执行命令替换远程地址为SSH格式:
git remote set-url origin git@github.com:ZpoDavay/zpo.git

再执行推送命令即可。

注意:如果你的本地目录本身就是从其他仓库克隆下来的,不需要重复执行git init命令,重复初始化会打乱本地仓库的原有配置,反而容易引发异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:09:49