Git克隆遇错误:RPC failed; curl 56 接收对等方数据失败 求助
问题现象
执行克隆命令时出现报错,命令及完整日志如下:
git clone --progress -v --depth 1 "https://gitlab.xxx.com/yyy/zzz.git" "C:\ddd\aaaa"
Cloning into 'C:\ddd\aaaa'...
POST git-upload-pack (190 bytes)
POST git-upload-pack (199 bytes)
remote: Enumerating objects: 117, done.
remote: Counting objects: 100% (117/117), done.
remote: Compressing objects: 100% (96/96), done.
remote: Total 117 (delta 13), reused 97 (delta 7)
Receiving objects: 97% (114/117), 35.62 MiB | 9.66 MiB/s
error: RPC failed; curl 56 Failure when receiving data from the peer
Receiving objects: 100% (117/117), 35.62 MiB | 9.64 MiB/s, done.
Resolving deltas: 100% (13/13), done.
虽最终克隆完成,但报错提示数据接收环节出现异常,以下是针对性解决方法:
解决方法
增大Git HTTP缓存大小
默认缓存可能无法适配较大文件传输,执行命令调整缓存:git config --global http.postBuffer 524288000该值为500MB,可根据仓库大小灵活调整。
限制克隆带宽
不稳定网络下,降低传输速度可减少数据中断概率:git clone --progress -v --depth 1 --limit-rate 5m "https://gitlab.xxx.com/yyy/zzz.git" "C:\ddd\aaaa"--limit-rate 5m将速度限制为5MB/s,可按需修改数值。切换至SSH协议克隆
HTTPS易受网络环境干扰,若仓库支持SSH,改用SSH地址:git clone --progress -v --depth 1 git@gitlab.xxx.com:yyy/zzz.git "C:\ddd\aaaa"需确保本地已配置SSH密钥并添加至GitLab账户。
排查网络与代理
- 切换网络环境(如WiFi转有线)测试稳定性
- 若使用代理,临时关闭后重试:
git config --global --unset http.proxy git config --global --unset https.proxy
取消浅克隆,完整克隆仓库
--depth 1的浅克隆可能因网络波动触发报错,尝试完整克隆:git clone --progress -v "https://gitlab.xxx.com/yyy/zzz.git" "C:\ddd\aaaa"
内容的提问来源于stack exchange,提问作者ClaudioM

