git代理设置

在天朝,由于某些原因,国人访问github的速度异常的慢,尤其是使用git clone项目时。

git目前支持4种协议,git,ssh,http,https,可以通过配置这四种协议的代理来加速git的使用。

本文默认浏览者使用linux系统并且拥有代理服务器

代理ssh协议

安装connect-proxy

1
sudo apt install connect-proxy

修改ssh设置

1
2
mkdir ~/.ssh
nano ~/.ssh/config

然后在文件最后加入

1
2
3
Host github.com *github.com
ProxyCommand connect-proxy -H 127.0.0.1:8118 %h %p
User git

此处仅支持http代理服务器,请根据自身情况修改地址与端口

上面的配置会通知ssh,在连接github.com和*.github.com时使用代理,用户为git,并配置代理命令

connect-proxy的作用为使用127.0.0.1:8118作为http proxy,透过代理服务器建立一个指向 %h:%p 的socket,并将其重定向到stdin,stdout中

代理http协议

bash中输入

1
git config --global http.proxy 'socks5://127.0.0.1:1080'

若代理服务器为http,则改为http://,代理服务器地址以及端口请自行变换

以下设置同上

代理https协议

1
git config --global https.proxy 'socks5://127.0.0.1:1080'

代理git协议

这个协议比较少见,仅作记录

1
git config --global core.gitproxy '/path/to/gitproxy'

其中/path/to/gitproxy为一个脚本,可使用connect-proxy来实现

1
2
3
4
5
6
7
#!/bin/sh
#
# Proxy wrapper for git protocol (9418).
#
# git config --global core.gitproxy "ido gitproxy"
#
exec connect-proxy -H 127.0.0.1:8118 $1 $2