Git 全局代理需显式配置 http.proxy 和 https.proxy 参数,推荐使用 socks5://127.0.0.1:7891(SOCKS5 更稳定),并配合 no_proxy 排除本地地址;环境变量 http_proxy/https_proxy 用于 curl、npm 等工具,需单独设置。
macos 终端中配置 git 全局代理,核心是让 git clone、git pull 等网络操作走本地代理(如 clash、surge、watt toolkit 或 ssr 客户端),而不是依赖系统 gui 代理设置——因为 gui 设置对终端命令默认不生效。
确认代理服务已运行并监听本地端口
多数代理工具默认在 127.0.0.1:7890 提供 HTTP/HTTPS 代理,SOCKS5 通常在 127.0.0.1:7891。先验证是否可连:
- 打开终端,执行:
curl -x http://127.0.0.1:7890 https://github.com - 若返回 HTML 内容或重定向响应,说明代理服务正常;若超时或拒绝连接,请检查代理客户端是否开启、是否启用「允许局域网连接」、端口是否被防火墙拦截
设置 Git 全局 HTTP/HTTPS 代理
Git 本身不读取 http_proxy 环境变量,必须显式配置其内置代理参数:
- 设置 HTTP 代理:
git config --global http.proxy http://127.0.0.1:7890 - 设置 HTTPS 代理:
git config --global https.proxy http://127.0.0.1:7890 - 如果代理支持 SOCKS5(更稳定,尤其对子模块有效),用:
git config --global https.proxy socks5://127.0.0.1:7891
注意:HTTP 和 HTTPS 代理地址必须一致(或按协议分别指定),且不能混用协议(如 HTTPS 代理写成 http:// 会导致证书错误)。
跳过本地和内网地址不走代理
避免 localhost、127.0.0.1 或公司内网 Git 服务器也被代理,可配置 no_proxy 规则:
- 执行:
git config --global http.localhost.sslVerify false(仅限测试环境,生产慎用) - 更安全的做法是为特定域名禁用代理:
git config --global url."https://gitlab.internal/".insteadOf "https://gitlab.internal/",再配合no_proxy环境变量全局控制(见下一条)
补充:让终端命令也走同一代理(可选但推荐)
很多开发工具(如 curl、wget、npm、homebrew)依赖环境变量,建议一并配置:
- 临时生效(当前终端):
export http_proxy=http://127.0.0.1:7890; export https_proxy=http://127.0.0.1:7890; export all_proxy=socks5://127.0.0.1:7891 - 永久生效(写入 shell 配置):
echo 'export http_proxy=http://127.0.0.1:7890' >> ~/.zshrc && echo 'export https_proxy=http://127.0.0.1:7890' >> ~/.zshrc && source ~/.zshrc - 排除地址:
export no_proxy="localhost,127.0.0.1,::1,.internal"
这样 Git 命令和周边工具就统一走代理,避免部分命令快、部分命令卡的割裂体验。


















