如何配置 Git 全局代理加速远程仓库克隆速度

文章导读
配置 Git 全局代理是解决访问海外代码托管平台(如 GitHub)克隆速度慢的有效手段,适用于本地网络直连不稳定或超时的开发场景。
📋 目录
  1. HTTP/HTTPS 协议代理配置
  2. SSH 协议代理配置
  3. 代理认证与安全处理
  4. 验证与常见问题排查
A A

配置 Git 全局代理是解决访问海外代码托管平台(如 GitHub)克隆速度慢的有效手段,适用于本地网络直连不稳定或超时的开发场景。

核心结论:通过 Git 配置指向本地代理服务的 HTTP 或 SOCKS5 代理,可以显著改善克隆远程仓库时的连接稳定性与速度。SSH 协议需单独配置 SSH 客户端代理。

  • 适用场景:本地直连海外仓库频繁超时、下载速度极低。
  • 前置准备:确认本地代理工具的监听协议(HTTP 或 SOCKS5)及端口号(常见为 7890 或 1080)。
  • 验收标准:执行 git config 查看配置项,克隆仓库时观察进度条速度及是否超时。

HTTP/HTTPS 协议代理配置

以下命令假设你的本地代理监听在 127.0.0.1。请根据实际工具(如 Clash、V2Ray 等)的端口号替换命令中的端口。

# 配置全局 SOCKS5 代理(常见端口 1080)
git config `--global` http.proxy socks5://127.0.0.1:1080
git config `--global` https.proxy socks5://127.0.0.1:1080

# 配置全局 HTTP 代理(常见端口 7890)
git config `--global` http.proxy http://127.0.0.1:7890
git config `--global` https.proxy http://127.0.0.1:7890

# 仅针对 GitHub 域名配置代理(不影响国内仓库)
git config `--global` http.https://github.com.proxy socks5://127.0.0.1:1080
git config `--global` https.https://github.com.proxy socks5://127.0.0.1:1080

# 取消全局代理配置
 git config `--global` `--unset` http.proxy
git config `--global` `--unset` https.proxy

注意:Windows PowerShell 用户若遇到命令报错,请确保命令中无多余空格,或直接使用 Git Bash 执行。

SSH 协议代理配置

Git 的 http.proxy 配置仅对 HTTPS 协议生效。若使用 git@github.com 开头的 SSH 地址克隆,需修改 SSH 客户端配置。

编辑或创建 ~/.ssh/config 文件(Windows 位于 C:\Users\用户名\.ssh\config),加入以下内容:

Host github.com
  ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p
  User git
  HostName github.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa

依赖说明:上述配置依赖 nc (netcat) 命令。Windows 用户需确保 Git 安装目录下的 usr\bin 在环境变量中,或使用 connect.exe 替代 nc。若配置后 SSH 克隆仍失败,建议暂时改用 HTTPS 协议克隆。

代理认证与安全处理

若代理服务器需要用户名和密码,不建议直接将密码明文写入 Git 配置文件。

方案一:环境变量(推荐临时使用)

在终端中设置环境变量,Git 会自动读取。此方式重启终端后失效,适合临时任务。

如何配置 Git 全局代理加速远程仓库克隆速度
# Linux/Mac
export ALL_PROXY=http://username:password@127.0.0.1:7890

# Windows PowerShell
$env:ALL_PROXY="http://username:password@127.0.0.1:7890"

方案二:Git 凭证管理器

对于长期需求,建议配置 Git 凭证管理器存储认证信息,避免每次输入密码或明文存储。

git config `--global` credential.helper store

验证与常见问题排查

1. 检查配置是否生效

执行以下命令查看当前 Git 是否记录了代理设置:

git config `--global` `--get` http.proxy
git config `--global` `--get` https.proxy

若有输出内容,说明配置已写入。

2. 实际克隆测试

尝试克隆一个之前速度较慢的仓库。若速度有明显提升且不再频繁超时,说明代理生效。

3. 常见坑与排查

  • 协议不匹配:确认代理工具支持 SOCKS5 还是 HTTP。若工具只提供 HTTP 端口,配置 socks5:// 前缀会连接失败。
  • 端口动态变化:部分代理工具的端口号是动态分配的。若克隆突然变慢,检查工具界面端口号是否变化。
  • SSL 证书报错:配置代理后若出现 SSL 证书验证错误,可尝试关闭 Git 的 SSL 验证(仅限内网测试环境):git config `--global` http.sslVerify false
  • 忘记取消代理:在网络环境变化(如离开公司内网)后,若忘记取消代理配置,可能导致无法访问国内仓库。使用 `--unset` 命令及时清理。