迫于特殊原因,git clone 龟速不能忍。这里记录一下 git 设置代理的方式。

HTTP

当克隆仓库时使用 http 协议时,可以给 git 配置 http 代理

1
2
3
4
5
6
7
# 如果是 HTTP 协议的代理
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080

# 如果是 SOCKET5 协议代理
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'

注意,代理服务器的地址和端口请根据自己的配置修改

SSH

如果是用 SSH 协议克隆仓库,会发现上面的配置将不起作用,很显然,SSH 协议克隆需要给 SSH 配置代理

经过查找资料,发现 windows 下面要这样配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# %home%\.ssh\config 
# 如果没有 config 文件就自己创建

ProxyCommand connect -S 127.0.0.1:1080 %h %p

Host github.com
  User git
  Port 22
  Hostname github.com
  IdentityFile "C:\users\tyx1703\.ssh\id_rsa"
  TCPKeepAlive yes
  IdentitiesOnly yes

Host ssh.github.com
  User git
  Port 443
  Hostname ssh.github.com
  IdentityFile "C:\users\tyx1703\.ssh\id_rsa"
  TCPKeepAlive yes
  IdentitiesOnly yes

上面是 SOCKET5 协议的代理,如果是 HTTP 协议的代理,需要将 -S 修改为 -H

1
ProxyCommand connect -H 127.0.0.1:1080 %h %p

参考资料

https://stackoverflow.com/questions/5103083/ssh-in-git-behind-proxy-on-windows-7