1 故事发生背景
这段时间,github 的 clone 快搞死人了,速度慢的一逼,上网看了几种方法
- 改 hosts(亲测差异不大)
- 先拉到 gitee,再从 gitee 克隆
- 走代理
我使用了代理,第二种方法不适合我,为什么,一个是自己懒,另外一个就是安装某些软件,这些软件特么的自己写死了 clone 地址(一般都是不能改的),所以果断抛弃,直奔第三种方式
2 执行方法
走代理,你特么的需要个梯子呀
我使用的是 ss 服务,看图说话
很清晰,没毛病,然后进行下一步
不同的协议他的代理配置各不相同
core.gitproxy
用于 git://
协议http.proxy
用于 http://
协议https.proxy
用于 https://
协议
全局设置 git 的配置
1 2 3 4 5 6 7
| # 这里是针对 http 和 https 协议的 git config --global http.proxy 'socks5: git config --global https.proxy 'socks5:
# 这里是针对 git 协议的 git config --global core.gitproxy "git-proxy" git config --global socks.proxy 'socks5:
|
设置完后,看下 git 的全局配置 git config --global --list
1 2 3 4 5 6 7 8 9 10 11 12
| user.name=xxxx user.email=xxxxx@gmail.com core.excludesfile=/Users/kycool/.gitignore_global core.gitproxy=git-proxy difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE" difftool.sourcetree.path= mergetool.sourcetree.cmd=/Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED" mergetool.sourcetree.trustexitcode=true commit.template=/Users/kycool/.stCommitMsg http.proxy=socks5://127.0.0.1:1086 https.proxy=socks5://127.0.0.1:1086 socks.proxy=socks5://127.0.0.1:1086
|
如果后面想删掉这些配置,则可以执行以下命令
1
| git config --global --unset 键
|
添加 ssh 配置,在 .ssh/config
文件中添加
1 2 3 4 5 6 7
| Host github.com HostName github.com User git port 22 UseKeychain yes IdentityFile /Users/kycool/.ssh/id_rsa ProxyCommand nc -v -x 127.0.0.1:1086 %h %p
|
好了,到享受的时候了,我测试了 git 协议和 https 协议
3 克隆测试
git 协议: clone antd-pro
1 2 3 4 5 6 7 8
| $ git clone git@github.com:ant-design/ant-design-pro.git Cloning into 'ant-design-pro'... remote: Enumerating objects: 31, done. remote: Counting objects: 100% (31/31), done. remote: Compressing objects: 100% (29/29), done. remote: Total 18085 (delta 9), reused 14 (delta 2), pack-reused 18054 Receiving objects: 100% (18085/18085), 6.02 MiB | 299.00 KiB/s, done. Resolving deltas: 100% (12239/12239), done.
|
从来没有见过的速度,几乎是秒杀
https 协议: hexo init mm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $ hexo init mm INFO Cloning hexo-starter https://github.com/hexojs/hexo-starter.git Cloning into '/Users/kycool/Documents/test/mm'... remote: Enumerating objects: 30, done. remote: Counting objects: 100% (30/30), done. remote: Compressing objects: 100% (24/24), done. remote: Total 161 (delta 12), reused 12 (delta 4), pack-reused 131 Receiving objects: 100% (161/161), 31.79 KiB | 206.00 KiB/s, done. Resolving deltas: 100% (74/74), done. Submodule 'themes/landscape' (https://github.com/hexojs/hexo-theme-landscape.git) registered for path 'themes/landscape' Cloning into '/Users/kycool/Documents/test/mm/themes/landscape'... remote: Enumerating objects: 9, done. remote: Counting objects: 100% (9/9), done. remote: Compressing objects: 100% (9/9), done. remote: Total 1063 (delta 1), reused 1 (delta 0), pack-reused 1054 Receiving objects: 100% (1063/1063), 3.22 MiB | 217.00 KiB/s, done. Resolving deltas: 100% (582/582), done. Submodule path 'themes/landscape': checked out '73a23c51f8487cfcd7c6deec96ccc7543960d350' INFO Install dependencies
|
速度和上面一个几乎不相上下。
测试的速度是不断变化的,我观察有瞬间跑到 600 KiB/s,我估摸着如果代理服务器的带宽牛逼的话,那速度想都不敢想。
4 不足的地方
这里面的哪一种方法都是有些不足的,梯子偶尔也会抽风,因为是我买的别人家的服务,这种保障不能主观控制,抽风就回到解放前了。