很多时候想从 GitHub 上 clone 一个仓库,都会遇到速度慢的问题,而且经常连接失败,这里给出有效解决方案。
有时会遇到从GitHub上clone项目,速度仅有几十KB,而且经常链接失败,经过我亲测,给出有效的解决方法
fatal: early EOF
fatal: the remote end hung up unexpectedly
fatal: index-pack failed
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
今天遇到这个问题,网上查了许多方法,总结了一些方式。
全局代理
# 实测后,用下面这条就能实现加速 clone 的效果,且能避开一些设置证书的坑
git config --global http.proxy 127.0.0.1:1082
局部代理 在 github clone 的仓库内执行:
# 实测后,用下面这条就能实现加速 clone 的效果,且能避开一些设置证书的坑
git config --local http.proxy 127.0.0.1:1082
只对 github 进行代理,对国内的仓库不影响:
git config --global http.https://github.com.proxy 127.0.0.1:1082
取消当前 git 环境使用的代理,恢复直连模式。
取消全局代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
取消局部代理:
git config --local --unset http.proxy
git config --local --unset https.proxy
取消对 github 进行的代理:
git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy
要注意的是,上面的 127.0.0.1:1081 这个地址是我自己的代理地址,每个人都需要查看自己的端口是不是也是 1081,同时也要区分 socks 端口和 http 端口,因为我这里主要是用的 https 方式来 clone GitHub 项目。
如果没有代理,这也是一种有效的方法,缺点是步骤太麻烦。
码云(Gitee)是个基于 Git 的代码托管和研发协作平台,简单理解就是国产的 GitHub,具体的注册方式见官网。
如果你要在 GitHub 上 clone 的项目是别人的,就先要将这个项目 fork 到自己的 GitHub 账号下。
打开码云,通过「导入 GitHub 仓库」功能,将 GitHub 上的项目复制到码云。
导入完成后再从码云下载你刚刚需要的项目到本地,这个时候速度就可以了。
这两个方法都挺有效,像修改本机hosts文件,调整 git 的传输缓存效果不明显。