You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Git克隆Arch Linux内核仓库时遭遇RPC失败:curl 28传输过慢错误的排查与求助

我之前也遇到过一模一样的问题!GitHub大仓库克隆时,偶尔会因为短暂的网络波动触发curl的超时限制,尤其是访问GitHub的链路不稳定时特别容易出现这种情况。

核心解决方案:让Git给curl传递放宽速度限制的参数

直接通过Git配置调整curl的速度检测阈值,这是最直接有效的办法:

# 全局生效(所有Git仓库都会应用这个配置)
git config --global http.curlopt.speed-time 60
git config --global http.curlopt.speed-limit 100
  • speed-time:设置curl允许传输速度低于阈值的最长时间,默认是3秒,改成60秒能给网络波动留足缓冲时间
  • speed-limit:设置触发超时的最低速度门槛,默认是1000字节/秒,改成100字节/秒几乎不会因为短暂慢速被终止

如果只需要针对这个Arch内核仓库生效,去掉--global参数,在克隆前或者进入仓库目录执行即可。

补充优化方案

  1. 增大Git的POST缓冲区
    有时候大文件传输时缓冲区不足也会导致中断,可以同时设置:
git config --global http.postBuffer 524288000

这个配置把POST缓冲区调整为500MB,足够应对大部分大仓库的传输需求。

  1. 换用SSH协议克隆
    HTTPS协议偶尔会有额外的网络限制,换成SSH协议可能更稳定:
git clone --depth 1 git@github.com:archlinux/linux.git

需要提前在GitHub账户的SSH设置里配置好你的SSH公钥。

  1. 中断后继续克隆
    如果还是中途断了,不用从头开始,进入已创建的仓库目录继续拉取:
cd linux
git fetch --depth 1

我当时就是靠调整curl的速度限制解决的问题,调整后克隆大仓库再也没因为短暂慢速中断过!

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

火山引擎 最新活动