GitHub 加速最佳实践

GitHub,又称世界上最大的同性交友平台(GayHub)。但由于尽人皆知的缘由,GitHub 在没有翻墙的条件下,拜访速度就像乌龟在散步。让寻求效力的技巧人员苦楚不堪,巴不得肉身翻墙,享受优良互联网服务的同时晒晒太阳,吹吹海风。

熟练的技巧人员根本上都应用 Terminal 或命令行拜访 GitHub。那末问题来了,怎样优雅地应用 GitHub 呢?

Git 目前支撑的两种协定 ssh://https://,其代理配置各不雷同:http.proxy用于 https:// 协定,ssh:// 协定的代理须要配置 sshProxyCommand 参数。

针对HTTPS 协定(https://)配置代理

配置 git 对 https:// 协定开头的仓库应用 http 代理,可以通过以下两种办法:

  • 通过命令行进行设置

针对所有git服务器设置代理

1
$ git config --global http.proxy http://127.0.0.1:1087

只针对github.com设置代理

1
$ git config --global http.https://github.com.proxy http://127.0.0.1:1087

如果代理须要帐号密码,可按以下格局

1
2
3
4
5
$ git config --global http.proxy http://proxyuser:[email protected]:1087

#proxyuser= 代理的登录用户名
#proxypwd= 代理的登录密码
#proxy.server.com:1087 = 代理的ip(或域名)和端口
  • 通过编纂git配置文件
1
2
3
4
$ vim  ~/.gitconfig

[http]
proxy = http://127.0.0.1:1087

针对SSH 协定(ssh://)配置代理

应用 ssh 的利益就是在 clone 数据,或提交数据到 github.com 时,不用在输入 github 的帐号密码。

下面是 ssh 的设置,打开 ~/.ssh/config 输入 :

1
2
3
4
5
6
7
8
9
$ vim ~/.ssh/config

Host github.com *.github.com
ProxyCommand connect -H 127.0.0.1:1087 %h %p #设置代理
HostName %h
Port 22
User git
IdentityFile ~/.ssh/id_rsa # 这里是私钥,不要放成公钥啦
IdentitiesOnly yes

通过ProxyCommand命令设置代理,其中的connect是一个工具用于进行代理的转换。connect通常须要安装,各发行版一般打包后的包名为proxy-connectconnect-proxy

connect项目地址:https://bitbucket.org/gotoh/connect

安装方法

Ubuntu

1
$ sudo apt-get install connect-proxy

Centos

1
$ sudo yum install connect-proxy

Mac OS X

1
$ brew install  connect

测试

1
2
$ ssh -T [email protected]
Hi username! You ve successfully authenticated, but GitHub does not provide shell access.

其它小技能

  • 撤消当前应用代理
1
$ git config --global --unset http.proxy
  • 查看当前应用代理
1
$ git config --global --get http.proxy

参考文档

http://www.google.com
http://t.cn/RxG4QTv
http://t.cn/RxG4r7O