配置代理以使用 Git
本文将讨论配置 Git 以使用不同的代理。在公司防火墙后面工作时通常很难访问 Git。
我们将介绍 Git 支持的一些代理,如何配置它们,以及如何将代理提供给我们的命令行以供一次性使用。让我们直接开始吧。
Git 中支持的代理协议
Git 支持以下代理:
- HTTP
- HTTPS
- SOCKS4
- SOCKS5
在 Git 命令中使用 HTTP 代理
我们通常编辑 Git 配置文件以使用代理。但是,Git 允许我们将代理提供给终端以便快速使用。
这是命令行上的 HTTP 代理示例。
$ git config --global http.proxy http://username:password@proxy_server.com:port
在具有特定域的场景中,我们将运行如下所示的命令。
$ git config --global http.http://specific_domain.com.proxy http://username:password@proxy_server.com:port
请注意,我们在 http.proxy
之间添加了我们的域,并且我们提供了完整的代理 URL。完整的 URL 使 Git 可以自动识别和运行协议。
在 Git 命令中使用 HTTPS 代理
在我们在防火墙后面工作的场景中,以下是我们将如何运行 HTTPS 代理协议的命令。
$ git config --global http.https://specific_domain.com.proxy http://username:password@proxy_server.com:port
URL 介于 http.proxy
之间,但请注意从 http://specific_domain.com
到 https://specific_domain.com
的更改。
你可以禁用 SSL 验证以避免出现问题,如下所示。
$ git config --global http.https://specific_domain.com.sslVerify false
在 Git 配置文件中永久配置代理
我们可以将上述设置永久存储在 Git 配置文件中。我们使用 --global
开关为所有用户和连接设置配置。
使用 --Global
开关设置全局代理
如果我们需要所有 Git 操作通过代理,我们运行:
$ git config --global http.proxy http://username:password@proxy_server.com:port
为特定域设置代理
如果我们希望特定域通过我们的代理连接,我们将运行以下命令。
$ git config --global http.https://domain.com.proxy http://username:password@proxy_server.com:port
禁用 HTTPS 验证
如果你收到此错误消息 无法访问 'https://...': Unknown SSL protocol error in connection to ...:443
,你可以关闭 SSL 验证,如下所示。
$ git -c http.sslVerify=false clone https://domain.com/example.git
或者,你可以一起禁用它,如下所示。
$ git config http.sslVerify false
删除 Git 存储库的代理设置
我们使用下面的命令列出连接到我们存储库的所有代理。
$ git config --get-regexp http.*
我们可以使用以下任何语法来删除我们的代理。
$ git config --unset http.proxy
$ git config --unset http.https://domain.com.proxy
或者
$ git config --unset http.sslVerify
$ git config --unset http.https://domain.com.sslVerify
如下所示,我们可以添加 global
开关以从我们所有的存储库中删除代理设置。
$ git config --global --unset http.proxy
$ git config --global --unset http.https://domain.com.proxy
在 Git 中配置 SOCKS
代理
如前所述,Git 支持 socks5://
和 socks4://
协议。
运行以下命令来配置 SOCKS
协议。
$ git config --global http.proxy socks5://proxy_server.com:port
对于特定域,运行:
$ git config --global http.https://domain.com.proxy socks5://proxy_server.com:port