拉取git大文件:error: RPC failed; curl 18 transfer closed with outstanding read data remaining error: 6801
·
问题:
在尝试从 GitHub clone 大型仓库时,经常遭遇网络连接问题,导致克隆操作失败。错误信息如下:
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
error: 6801 bytes of body are still expected
出现原因
网络连接问题:网络中断或速度过慢导致传输中断
服务器限制:Git 服务器对传输大小或时间有限制
客户端缓冲区不足:Git 的 HTTP 缓冲区设置过小
大型文件问题:仓库中包含大型文件或二进制文件
代理或防火墙干扰:中间网络设备中断了长连接
解决方案:
方法一:浅克隆
浅克隆:只下载指定数量的最新提交(这里是 depth=1,即只获取最近一次提交)
git clone --depth [--branch 分支名/特定的标签] 1 git地址
#取回其余分支
git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
git fetch --unshallow
方法二:当特别庞大的仓库时
可以使用分阶段克隆
# 第一步:初始化空仓库
git init repo-name
cd repo-name
# 第二步:添加远程
git remote add origin 地址
# 第三步:分批获取
git fetch --depth=100 origin master # 获取前100个提交
git fetch --depth=100 origin master # 再获取下一批
# 重复直到获取完整历史
# 第四步:检出分支
git checkout -b master origin/master
方法二:增加 Git 的缓冲区大小
# 设置更大的缓冲区(500MB)
git config --global http.postBuffer 524288000
# 验证设置
git config --global --get http.postBuffer
方法三:启用压缩传输
此方法,慎用
git config --global core.compression 9
更多推荐
所有评论(0)