git 代理
1 2 3
| # 设置 git config --global http.proxy "socks5://127.0.0.1:7890" # clash的socks5端口是7890 git config --global https.proxy "socks5://127.0.0.1:7890" # 根据实际情况做修改
|
1 2 3
| # 恢复 git config --global --unset http.proxy git config --global --unset https.proxy
|
git 的配置范围有三种,一般情况下可以选择不加 --global
参数,实现局部(也就是当前仓库)配置,毕竟不是每一个库都需要代理吧。
1 2 3 4 5 6 7
| # 查看当前git config # 系统 git config --system --list # 全局 git config --global --list # 当前仓库 git config --local --list
|
如果是在克隆时需要临时使用代理,也可以使用命令行参数实现:
1 2 3 4 5
| git clone --config http.proxy=http://<proxy_address>:<port> <repository_url>
git clone --config http.proxy=socks5://<proxy_address>:<port> <repository_url>
|
注意,SSH 默认不会走 Windows 下的系统代理,更不会走 Linux 的后台代理,因此,如果发现通过 SSH 进行 git clone
时报错,可以排查是否为网络问题。如果是,需要配置 ssh config 并指定代理。以下是 Linux 的 SSH 代理设置方式,需借助 netcat
实现。
1 2 3 4 5 6
| Host github.com Hostname ssh.github.com IdentityFile /home/yzh/.ssh/whr-yzh-git User git Port 443 ProxyCommand nc -X 5 -x 127.0.0.1:7890 %h %p
|
Windows 的 ssh 代理设置方式,见 Windows平台代理OpenSSH