这个错误的关键线索是 via 127.0.0.1,说明 Git 被配置为通过本地代理访问 GitHub,但代理软件当前没有运行,或者代理端口不对。

排查与解决

1. 检查 Git 代理配置

# 查看当前 Git 代理设置
git config --global --get http.proxy
git config --global --get https.proxy

如果输出类似 http://127.0.0.1:7890socks5://127.0.0.1:1080,说明代理已配置。

2. 取消 Git 代理(推荐)

如果你当前不需要代理,直接取消:

git config --global --unset http.proxy
git config --global --unset https.proxy

然后再试:

git push -u origin main

3. 如果确实需要代理

先确认你的代理软件正在运行,然后配置正确的端口:

# 例如 Clash 默认 HTTP 代理端口是 7890
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

# 或者 SOCKS5 代理
git config --global http.proxy socks5://127.0.0.1:7890
git config --global https.proxy socks5://127.0.0.1:7890

4. 检查系统环境变量(全局代理)

有时系统环境变量也会强制走代理:

# CMD 中查看
echo %HTTP_PROXY%
echo %HTTPS_PROXY%

如果有值,可以临时取消:

set HTTP_PROXY=
set HTTPS_PROXY=

或者在 PowerShell 中:

$env:HTTP_PROXY=""
$env:HTTPS_PROXY=""

5. 快速验证

# 测试能否直接连上 GitHub
curl -I https://github.com

如果能通,说明网络没问题,就是代理配置导致的。


最可能的情况:你之前用过代理工具,Git 保留了代理配置,现在代理没开,所以连不上。执行第 2 步取消代理即可解决。