配置代理以使用 Git

本文将讨论配置 Git 以使用不同的代理。在公司防火墙后面工作时通常很难访问 Git。

我们将介绍 Git 支持的一些代理,如何配置它们,以及如何将代理提供给我们的命令行以供一次性使用。让我们直接开始吧。

Git 中支持的代理协议

Git 支持以下代理:

  1. HTTP
  2. HTTPS
  3. SOCKS4
  4. 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.comhttps://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