Git配置代理需要分两种情况:使用ssh仓库地址和使用https仓库地址,对于前者实际进行通信的软件为ssh,所以与git软件的配置无关。
一,如果仓库地址是ssh的,那么要编辑ssh配置文件。对于Linux,此文件的地址为:~/.ssh/config,对于Windows,此文件则位于:C:\Users\用户名\.ssh\config,若不存在请自行创建。并进行如下的编辑:
Host github.com *.github.com
User git
Port 22
# http使用-H,socks使用-S
ProxyCommand "D:\Development\PortableGit\mingw64\bin\connect" -S 127.0.0.1:10808 %h %p
这里使用ProxyCommand命令调用connect软件。对于Git for Windows,可以使用其自带的connect软件,将其路径Git\mingw64\bin加入path或者直接给出完整路径即可。
如果是Linux系统,则可以先安装netcat(nc命令),然后改成ProxyCommand nc -X connect -x 127.0.0.1:10808 %h %p即可。
二,如果是https仓库地址,则可以直接使用如下git命令进行设置:
# 使用socks5代理:
git config --global http.proxy socks5://127.0.0.1:10808
# 使用http代理:
git config --global http.proxy http://127.0.0.1:10808
如果只想对某个地址进行代理,比如只对github代理,就这样:
git config --global http.https://github.com.proxy socks5://127.0.0.1:10808
取消代理设置命令:
git config --global --unset http.proxy
git config --global --unset http.https://github.com.proxy
也可以直接去.gitconfig文件(位于用户家目录)中删除或用#注释相应行。
需要注意的是,很多文章还会对https.proxy属性进行设置,但实际上这个属性并没有任何效果。http(s)代理里的http(s)和你访问的网站是否是http(s)无关,无论是http代理还是https代理,都支持代理访问http和https网站。
参考资料: