git在macos上支持按url精确控制代理,可实现外网走代理、内网直连:先全局配置http.proxy和https.proxy,再为内网地址如http://192.168.0.232:3000单独设置proxy="",配置写入~/.gitconfig,验证用git config --show-origin --get-regexp "http.*proxy"及git ls-remote测试。
git 在 macos 上支持按 url 精确控制代理行为,不需要依赖 no_proxy 环境变量。你可以让外网请求走代理(比如访问 github),而内网地址(如 http://192.168.0.232:3000)直连,互不干扰。
保留全局代理用于外网访问
先确保你的 Git 已配置默认代理(HTTP 或 SOCKS5):
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
为内网仓库 URL 单独禁用代理
假设你的内网 Gitea 地址是 http://192.168.0.232:3000,执行:
git config --global http."http://192.168.0.232:3000".proxy ""
注意:末尾的双引号表示“空值”,即明确禁用该 URL 的代理。
这条命令会写入 ~/.gitconfig,内容类似:
[http "http://192.168.0.232:3000"]
proxy =
验证配置是否生效
运行以下命令查看所有代理相关配置及其来源:
git config --show-origin --get-regexp "http.*proxy"
你应该看到两行:
批量替换指定目录下所有 Git 仓库的远程地址(remote URL)。 当用户需要将 Git 仓库从一个服务器迁移到另一个服务器时使用。 触发词:git remote 替换、git url 批量修改、git 仓库迁移、更换 git 地址、批量修改 remote url。
- 一行来自
~/.gitconfig的全局http.proxy - 一行来自同一文件的
http."http://192.168.0.232:3000".proxy(值为空)
再测试是否能访问内网仓库:
git ls-remote http://192.168.0.232:3000/your-org/your-repo.git
能返回分支列表,说明直连成功。
可选:仅对某个仓库生效(不改全局)
如果你只想在某个项目里绕过代理,进入该仓库目录后执行(去掉 --global):
git config http."http://192.168.0.232:3000".proxy ""
配置会写入 .git/config,不影响其他项目。
排查小贴士
- 先确认
ping 192.168.0.232通,再用nc -zv 192.168.0.232 3000检查端口是否可达 - 浏览器能打开但 Git 不行?大概率是 Git 的 URL 级配置没生效,或拼写不一致(比如协议、端口、斜杠)
- 如果用了系统级代理软件(如 Clash、Surge),检查它的规则是否把内网地址错误转发了
这样配置后,Git 就能智能分流:外网走代理,内网直连,不用开关代理,也不用碰 no_proxy。










