git clone github_GitHub为什么连接缓慢以及解决方法
本文首发在我的个人博客中:
个人博客|沧沧凉凉的小站www.cclliang.com1. 前言
之前有一篇文章介绍了Git
的使用方法:项目或者文件管理神器-Git。
一般对于电脑有一定认知的人都会知道GitHub
,但是因为GitHub
的服务器在国外,所以有时候连接速度非常的感人。
我们通过ipip.net
的路由跟踪来看一下我们访问GitHub
走的线路。
可以看到在广州出口走的骨干网到新加坡的服务器,这就是为什么访问GitHub
有时候会异常缓慢的原因,尤其是在晚高峰时期,通过骨干网出口的数据量过于庞大,电信还会选择权重不高的用户进行丢包,从而缓解骨干网拥挤的问题。
具体的服务器和线路详解可以参考:VPS的各种线路到底有什么区别。
2. 终极解决办法
看了网上有非常多的帖子说修改host
,但是我个人认为,修改host
并不能解决骨干网晚高峰拥挤的问题。
终极解决方法是通过代理服务器。
首先你需要有一个境外的服务器,参考VPS的各种线路到底有什么区别该文章中讲解的服务器,或者你有其它的代理软件也可以,但是连接代理服务器时的出口线路一定不能是骨干网,不然跟直连没有任何区别,依然连接缓慢。
关于代理服务器这里就不详细讲解了,这篇文章着重讲解如何通过代理服务器来连接GitHub
,从而摆脱缓慢的Clone
速度。
2.1 代码
# 设置ss
git config --global http.proxy socks5://127.0.0.1:1080
git config --global https.proxy socks5://127.0.0.1:1080
# 设置代理
git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
# 仅代理GitHub
git config --global http.https://github.com.proxy https://127.0.0.1:1080
git config --global https.https://github.com.proxy https://127.0.0.1:1080
2.2 步骤
首先需要知道你的代理服务器使用的端口号,在你的代理软件上可以看到,一般是1080
,但是Clash
默认使用的是7890
。
- 打开Git命令窗口,该窗口安装Git后在文件夹中点击右键选择
Git bash here
就会出现:
2. 输入git config --global http.proxy socks5://127.0.0.1:1080
点击回车。(1080
需要填写你的代理软件使用的端口号,我的是7890
)
3. 没有任何消息就是最好的消息,这个时候就设置完成了。
注意:其它的设置可以参考上面给出的代码。
3. 速度测试
3.1 没有用代理的速度
3.2 用代理后的速度
设置完毕后,Clone
和git push
的速度就跟你代理服务器的质量密切相关。
4. 使用镜像站
该方法仅对git clone
有用,对git push
无效,并且无法登陆账号,私人项目无法进行Clone
。
比如Clone
Vue
项目,项目地址:https://github.com/vuejs/vue.git
。
则将地址改为https://github.com.cnpmjs.org/vuejs/vue.git
。
4.1 速度
只需要在Clone
时将项目地址中的github.com
改为github.com.cnpmjs.org
,就可以使用镜像站。
那么为什么该镜像网站会这么快呢?我们再次通过ipip.net
的路由跟踪测试一下:
可以看到,在省级城市已经走上了59.43
开头的线路,说明该服务器用的是CN2 GIA
的线路,所以拥有这么快的传输速度完全不奇怪。