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

Git克隆/推送报错:RPC failed; curl 16 HTTP2帧层错误怎么解决?

解决Git RPC失败及EOF相关错误的方案

遇到的错误信息

error: RPC failed; curl 16 Error in the HTTP2 framing layerB/s
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

已尝试但无效的操作

  • 调整HTTP缓冲区和低速设置:
    git config --global http.postBuffer 1048576000
    git config --global http.lowSpeedLimit 0
    git config --global http.lowSpeedTime 999999
    
  • 开启Git调试追踪:
    set GIT_TRACE_PACKET=1
    set GIT_TRACE=1
    set GIT_CURL_VERBOSE=1
    
  • 强制使用HTTP/1.1:
    git config --global http.version HTTP/1.1
    

注:无法使用浅克隆或关闭压缩的方案,因为需要完整克隆项目;未使用代理、浏览器扩展、防火墙或杀毒软件,网络连接稳定。

可尝试的其他解决方案

1. 更换Git传输协议

如果当前使用HTTPS协议,尝试切换为SSH协议(前提是已在Git服务器配置SSH密钥):

  • 查看当前远程地址:
    git remote -v
    
  • 修改为SSH地址(以GitHub为例):
    git remote set-url origin git@github.com:<用户名>/<仓库名>.git
    

若原本用SSH协议,可切换回HTTPS协议重试。

2. 清理Git本地缓存与重置配置

重置可能冲突的全局配置,清理本地缓存后重试:

# 重置HTTP相关全局配置
git config --global --unset http.postBuffer
git config --global --unset http.lowSpeedLimit
git config --global --unset http.lowSpeedTime
git config --global --unset http.version

# 清理本地Git缓存
git gc --prune=now
git fsck --full

3. 调整Git打包参数

针对大仓库,手动调整打包窗口和大小限制:

git config --global pack.windowMemory 100m
git config --global pack.packSizeLimit 100m
git config --global pack.threads 1

4. 检查Git服务器状态

若上述方法无效,可能是服务器端临时故障,比如负载过高、存储节点异常。可查看对应Git平台的状态公告,或联系仓库管理员确认服务情况。

5. 用部分克隆补全完整历史

虽不能用--depth=1,但可通过--filter参数先克隆核心文件,再补全所有历史:

# 先克隆仅包含最新提交的文件,不下载历史对象
git clone --filter=blob:none <仓库URL>
cd <仓库目录>
# 补全所有历史数据
git fetch --unshallow

内容的提问来源于stack exchange,提问作者Death-is-the-real-truth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 20:42:43