You need to enable JavaScript to run this app. Git无法推送单个CSS文件,报错远程端意外挂断该如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Git无法推送单个CSS文件,报错远程端意外挂断该如何解决?

Git push 远程断开报错解决方案

常见报错示例

> git push
Enumerating objects: 14, done.
Counting objects: 100% (14/14), done.
Delta compression using up to 12 threads
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 215.75 KiB | 11.35 MiB/s, done.
Total 8 (delta 2), reused 5 (delta 0), pack-reused 0
send-pack: unexpected disconnect while reading sideband packet
Connection to github.com closed by remote host.
fatal: the remote end hung up unexpectedly
❯ git push
Enumerating objects: 14, done.
Counting objects: 100% (14/14), done.
Delta compression using up to 12 threads
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 215.76 KiB | 11.36 MiB/s, done.
Total 8 (delta 2), reused 5 (delta 0), pack-reused 0
send-pack: unexpected disconnect while reading sideband packet
client_loop: send disconnect: Broken pipe
fatal: the remote end hung up unexpectedly

基础修复步骤(优先尝试,无需修改仓库结构)

该报错本质是本地Git传输配置不足、对象索引异常导致,与文件大小、网络状态无关,无需重新克隆仓库,按顺序执行以下操作即可:

  • 调整Git传输缓存上限,全局配置一次永久生效
    若使用HTTPS协议推送:
    git config --global http.postBuffer 524288000
    若使用SSH协议推送:
    git config --global ssh.postBuffer 524288000
    上述配置将传输缓存上限调整为500M,可覆盖绝大多数文件推送场景。
  • 修复本地仓库对象索引
    先确保所有工作区变更已提交或暂存,避免数据丢失:
    git fsck --full
    该命令会扫描所有本地Git对象,自动修复损坏的索引条目。
  • 清理本地冗余对象
    git gc --prune=now --aggressive
  • 重置远程仓库关联,消除远程缓存异常
    git remote remove origin
    git remote add origin <你的远程仓库地址>
    git pull origin main --rebase
    
  • 重新推送提交
    git push origin main
    正常情况下即可完成推送。

进阶修复方案(保留所有分支、stash、工作区内容,无需重新克隆)

如果基础步骤执行后仍推送失败,可通过重置本地Git实例解决,完全不会丢失任何本地内容:

  1. 导出需要保留的stash内容:
    执行git stash list查看所有stash记录,对每个需要保留的stash执行:
    git stash show -p stash@{n} > stash_n.patch
    将补丁文件存到仓库目录外的位置备用。
  2. 重命名原有.git文件夹(不要删除,可用于故障回滚):
    mv .git .git_bak
  3. 初始化新的Git实例:
    git init
  4. 关联远程仓库并拉取全部分支记录:
    git remote add origin <你的远程仓库地址>
    git fetch origin --all
    
  5. 切换到原有工作分支:
    git checkout main
    此时工作区所有未推送的提交、修改的文件都会完整保留,没有任何变动。
  6. 恢复stash内容:
    执行git apply <补丁文件路径>即可导入之前导出的stash变更。
  7. 正常提交推送即可。

后续预防措施

  • 每月定期执行一次git gc清理本地冗余对象,避免索引异常
  • 不要手动修改.git文件夹内的文件
  • 避免在Git提交、推送过程中强制中断进程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 23:45:03