告别 15KiB/s!Windows 下 VS Code 与 Git 代理配置指南

在 Windows 开发环境下,即便开启了代理软件,git clone 速度慢或报错几乎是每个人的必经之路。以下总结了如何配置 HTTPSSSH 双协议代理,并解决 VS Code (PowerShell) 与 Git Bash 环境冲突的恼火问题。

1. 一些前置知识

代理软件(如 Clash Verge)通常在本地开启一个“出口”。

  • 本地地址: 127.0.0.1
  • 本地端口: 常用为 78907897(如何确认?设置->代理->编辑,以下教程认为是127.0.0.1:7897)。

2. HTTPS 协议代理:最简单的提速方案

适用于链接以 https://github.com/... 开头的仓库。

配置命令

在终端执行以下命令(以端口 7897 为例):

# 设置全局代理(推荐使用 socks5,更稳定)
git config --global http.proxy socks5://127.0.0.1:7897
git config --global https.proxy socks5://127.0.0.1:7897

# 解决常见的 SSL 握手重置问题
git config --global http.sslBackend openssl

3. SSH 协议代理:解决 git@github.com 报错

需要注意的是,SSH 协议不走 Git 的全局代理配置,必须手动修改 ~/.ssh/config 文件。以下是参考的config内容:

Host github.com
    HostName github.com
    User git
    ProxyCommand connect -S 127.0.0.1:7897 %h %p

这样git在访问github时就会走127.0.0.1:7897代理,现在在git bash里登入git并键入以下命令: ssh -vT git@github.com。如果出现了类似以下的图片,那么你就可以通过git bash进行push了

遇到的坑:为什么 VS Code 报错,Git Bash 却正常?

如果你在 config 里只写 ProxyCommand connect...,Git Bash 能识别(因为它内置了路径),但 VS Code 的 PowerShell 会报错:posix_spawnp: No such file or directory。这对于哪些希望在VSC里进行推送的是一个大麻烦,这里的原因是vsc使用的是cmd而git使用的是bash(linux),所以我们需要将connect加入win系统的path。

还有个比较坑的点,关于win和linux路径的问题:

环境/标准路径分隔符盘符表示法典型示例
Windows 原生 (CMD/PS)\ (反斜杠)C:\C:\Program Files\Git
Git Bash (Linux 风格)/ (正斜杠)/c//c/Program Files/Git
跨平台通用 (SSH Config)/ (正斜杠)C:/"C:/Program Files/Git"

关于win和linux下的路径,者里也总结了一篇简单的博客:link here

完美兼容方案

  1. 添加环境变量: 将 Git 安装目录下的 mingw64\binusr\bin 加入 Windows 系统环境变量 Path 中。
  2. 修改配置文件: 编辑 C:\Users\用户名\.ssh\config
Host github.com
    HostName github.com
    User git
    # 关键:由于已加环境变量,直接调用 connect,无需写死容易出错的绝对路径
    ProxyCommand connect -S 127.0.0.1:7897 %h %p

4. 验证与调试

配置完成后,请务必在 VS Code 终端进行以下测试:

  • 测试 HTTPS 连接: curl.exe -I https://github.com 看到 HTTP 200 即代表成功。
  • 测试 SSH 连接: ssh -T git@github.com 看到 “Hi [YourName]! You’ve successfully authenticated” 即代表代理成功。

Leave a Comment