本文假设读者有能力并且已经使用酸酸乳来科学上网,就不再赘述如何科学上网这个话题。
很多公司会把代码托管在 Github 的私有仓库上,因为众所周知的原因,在中国大陆 git clone/pull/push 代码时非常慢。终端卡在那里,半天没有任何反应,不知道在干什么;好不容易连上 git 服务器,下载也是龟速。
如果一天提交 15 次代码,就要浪费半个小时的时间。如何提高 git pull/push 的速度呢?
对于开源的项目仓库,我们通常大部分并不需要 push 权限,只会 git clone/pull。很多人会选择使用 HTTP 方式来访问仓库地址。
对于 HTTP 形式的仓库地址,可以在终端里输入以下两行命令,为 Git 设置全局的 HTTP 代理,从而提高 git clone/pull 的速度。
git config --global http.proxy "http://127.0.0.1:8080"
git config --global https.proxy "http://127.0.0.1:8080"
执行完后 ~/.gitconfig 会多出几行。
[http]
proxy = http://127.0.0.1:8080
[https]
proxy = http://127.0.0.1:8080
以后再 pull 代码就会走代理。
但是这种方法对于 [email protected]:my_name/repo.git 这种仓库地址并没有效果,因为它走的是 SSH。
公司的私有仓库,大部分开发者会上传公钥到 Github, 使用 SSH 形式的仓库地址,避免 git push 时一次次输入密码。
对于这种仓库,我们可以在 ~/.ssh/config 设置代理,提高 git pull/push 的速度。
Host github.com
User git
HostName github.com
ProxyCommand nc -v -x 127.0.0.1:1080 %h %p
我选了一个比较大的开源项目的仓库做测试,以下是对比图:
原文地址: