Git 传输分两种协议,SSH和 http(s),设置代理也需要分两种。
http(s) 代理
Command Line
使用 命令行 模式,可以在Powershell中使用以下命令设置代理:
$env:http_proxy="http://127.0.0.1:7890"
$env:https_proxy="http://127.0.0.1:7890"
TortoiseGit
SourceTree
SSH 代理
在目录 【C:\Users\[用户名]\.ssh】下添加一个 config 文件,并在文件中添加以下配置
Host github.com
User git
Port 22
Hostname github.com
IdentityFile "C:/Users/[用户名]/.ssh/id_rsa"
ProxyCommand connect -S 127.0.0.1:7890 -a none %h %p
TCPKeepAlive yes
PS
虽然大部分情况下都是使用SSH,但是因为Git拉取 子模块,LFS时使用的是http传输,所以在使用ssh克隆时,如果仓库中有子模块或者LFS,也需要同时设置http代理。