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

Git push到GitHub报错curl 92 (err 8) 常规方案无效(隐藏大文件问题)

问题根因

error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)在GitHub推送场景下,排除公网网络、代理问题后,核心原因是暂存区或待推送的提交历史中存在超过GitHub单文件100MB硬限制的文件,服务端检测到违规内容后主动断开HTTP流,触发该报错。
你当前工作区可见的最大文件仅35MB,不代表提交内容合规:大概率是之前误提交了临时生成的大文件(比如Rstudio生成的.Rproj.user缓存、.RData工作空间备份、临时导出数据集、日志文件等),后续即使在工作区删除了该文件,它仍然存在于待推送的commit历史中,会被一并推送到服务端。

排查步骤

先定位违规大文件,无需直接重建分支丢失提交历史:

  • 第一步:排查暂存区大文件
    执行以下命令列出暂存区所有文件,按大小倒序排列取前20个:
    git ls-files -s | awk '{print $4}' | xargs ls -lh 2>/dev/null | sort -k5 -hr | head -20
    
    如果输出中存在超过100MB的文件,直接从暂存区移除,并加入忽略列表:
    git rm --cached <查到的大文件完整路径>
    echo "<大文件完整路径>" >> .gitignore
    
  • 第二步:排查待推送提交历史中的大文件
    如果暂存区未找到违规文件,说明大文件藏在之前的提交记录里,执行以下命令扫描本地比远端多出的所有提交中的大文件:
    git fetch origin
    git rev-list --objects origin/HEAD..HEAD | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | awk '/^blob/ {print substr($0,6)}' | sort -k2 -nr | head -20
    
    输出第二列为文件大小(单位字节),超过104857600字节(即100MB)的文件就是触发报错的原因。
修复方案

根据大文件所在位置选择对应操作,所有操作都不会丢失正常的提交历史:

  • 场景1:大文件存在于最近一次未推送的commit中
    直接将大文件从commit中移除即可:
    git rm --cached <大文件完整路径>
    echo "<大文件完整路径>" >> .gitignore
    git add .gitignore
    git commit --amend --no-edit
    
    操作完成后直接执行git push即可正常推送。
  • 场景2:大文件存在于多个待推送的历史commit中
    使用git filter-repo清理全量历史中的违规文件(不要使用已废弃的git filter-branch,性能差易出错):
    1. 先通过系统包管理器安装git-filter-repo(macOS执行brew install git-filter-repo,Debian/Ubuntu执行apt install git-filter-repo即可)
    2. 执行命令将大文件从所有提交历史中移除:
      git filter-repo --invert-paths --path <大文件完整路径>
      
    3. 将大文件路径加入.gitignore后重新关联远端仓库(filter-repo操作会自动移除远端关联):
      echo "<大文件完整路径>" >> .gitignore
      git add .gitignore
      git commit -m "chore: ignore large temp file"
      git remote add origin <你的仓库SSH/HTTPS地址>
      
    4. 执行推送即可,原有正常提交记录会完整保留。
此前方案无效原因说明
  • 调大http.postBuffer仅对HTTP请求体缓冲区不足导致的传输失败有效,本问题是服务端主动断连,调大缓冲区只会延长无效等待时间,无法解决核心问题。
  • 降级HTTP/1.1仅更换了传输协议,没有移除提交内容中的违规大文件,自然会触发新的报错。
  • 不建议采用删除原主分支、重建新分支设为默认的方案,该方案会丢失分支上的提交历史,完全没有必要。

内容的提问来源于stack exchange,提问作者Aaarrrgh's My Game

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:57:11