git clone时出现error: RPC failed; curl 18 transfer closed with outstanding read data remaining

◇◆丶佛笑我妖孽 提交于 2019-12-22 17:02:56

问题

使用git bash 从github clone代码时遇到下面的错误

error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

原因

原因1:
因为curl的postBuffer的默认值太小,导致溢出。(git 的 HTTP 底层是通过 curl 的。HTTP 底层基于 TCP,而 TCP 协议的实现是有缓冲区的)
说明git 仓库源文件过多,或者clone的一些文件过大。

原因2:
也有可能是网络下载速度缓慢导致的。

解决

  1. 方案1
    将postBuffer的大小改为500M(500*1014*1024 bit)
    git config --global http.postBuffer 524288000
    
    设置完后,用下面命令检查,
    git config --list
    
    会多一行上面的配置信息
    http.postbuffer=524288000
    
  2. 方案2
    如果方案1不行,可以考虑使用 浅克隆
    git clone https://...git --depth 1
    然后
    git fetch --unshallow
    
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!