Git设置和取消代理

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网站。

参考资料:

留下评论