问题描述
git clone某个仓库时,可能会在一段时间后,提示RPC failed; curl 18 transfer closed with outstanding read data remaining
。
通过man curl也可以查到返回码18的错误描述:Partial file. Only a part of the file was transferred
。产生问题的原因是项目过大,curl的postBuffer默认值不够。
这种问题通常出现在文档代码库中,由于其占用的空间太大,导致需要读取的数据还没有完成,但是传输数据的连接被关闭了。
解决方案
可以考虑使用ssh协议的git地址进行克隆,则不受HTTP PostBuffer的影响。也可以考虑加大PostBuffer的空间或者减少克隆深度的方式:
# 加大buffer
git config --global http.postBuffer 524288000
# 先只克隆最近的一次commit再fetch
git clone --depth=1 <code url>