这个错误的关键线索是 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:7890 或 socks5://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 步取消代理即可解决。