昨天从github上面clone一个文件下来,clone速度超级感人,于是就想方设法去解决这个问题,最开始尝试用重定向的方式得到文件的真实链接,然后使用迅雷下载,但不知道为什么,可能是这个资源太冷门,速度还是上不去,还有什么办法呢?查了查网上说法,有人说使用ss代理,用如下指令即可:
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
参考地址:
然而我用的xx-net,当然也可以代理的,使用全局代理之后,上ie的internet选项当中查看到了我的代理端口号,把上面两条指令的端口号改成我的端口号就OK,我的是8087.
改完以后,又开开心心的去clone,然而,突然又有提示“SSL certificate problem”。纳尼!找办法,找到了以下忽略ssl证书的办法:
git config --global http.sslVerify false
紧接着继续去开开心心clone,事情还没有结束,
error: RPC failed; curl 18 transfer closed with 31812496 bytes remaining to read
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
what?这又是什么鬼。
于是又去找解决方案,可以通过git config指令去修改文件大小限制,也可以直接去修改.gitconfig文件当中的配置,当我修改完以后,再去测试,发现clone一会儿后又报相同的错误。
接着在StackOverflow上面发现了类似的问题,有个答主给的方案是:
原文地址如下:
原文地址
大致的意思就是可以不通过HTTP下载,使用SSH的方式。但是从之前知乎答主的回答可以得知:
但同时,也请注意,这里指的是https协议,也就是git clone https://www.github.com/xxxx/xxxx.git
这种对于SSH协议,也就是git clone git@github.com:xxxxxx/xxxxxx.git
这种,依旧是无效的
好吧,试试吧,申请了一个rsa证书,然后,使用ssh的方式git clone。
果然,速度还是很慢10K到30K不等吧,之间吃午饭去了,也就让它自己clone吧,回来后,果然没有报错,顺利clone结束了。
但想想还是不够elegant,再次Google了一下,发现这样一篇博客:
https://blog.csdn.net/IT_liuchengli/article/details/77040806
博主给的解释是:
这个错误是因为项目太久,tag资源文件太大
解决方式一, 网上大部分解决措施:命令终端输入
git config --global http.postBuffer 524288000
用上面的命令有的人可以解决,我的还不行,需要如下方式命令,只clone深度为一
$ git clone /github_com/large-repository --depth 1
$ cd large-repository
$ git fetch --unshallow
中划线处填入你的git仓库的地址。。。(我用的是http方式,不是ssh)
解决方式二,一般clone http方式的容易产生此问题,改成SSH的方式也有效
我目前采用的就是第二张方式,但是速度方面还是揪心,所以下次碰到类似问题,准备尝试第一种方式