Git 代理配置:按协议分别处理
在网络受限的环境下开发,Git 克隆超时、npm 安装失败是家常便饭。为 Git 单独配置代理,比开全局系统代理更精准,也不会干扰其他流量。
# 为所有仓库设置代理(https 协议走 SOCKS5)
git config --global http.proxy http://127.0.0.1:8080
git config --global https.proxy socks5://127.0.0.1:1080
# 只对特定域名启用代理,其余仓库直连
git config --global http.https://github.com.proxy http://127.0.0.1:8080
# 取消全部代理配置
git config --global --unset http.proxy
git config --global --unset https.proxy
注意一个高频误区:克隆地址以 git@ 开头说明走的是 SSH 协议,http.proxy 配置对它完全无效,需要在 ~/.ssh/config 中为对应主机添加 ProxyCommand,或直接把远程地址换成 https 形式。
npm 与 yarn 的代理设置
npm config set proxy http://127.0.0.1:8080
npm config set https-proxy http://127.0.0.1:8080
npm config delete proxy # 取消代理
yarn config set httpProxy http://127.0.0.1:8080
以上命令等价于向用户目录的 .npmrc 写入配置,团队场景也可以在项目根目录放置 .npmrc 统一管理,但注意不要把公司内网代理地址提交到开源仓库。
pip 及其他工具的代理写法
# 单次安装使用代理
pip install --proxy http://127.0.0.1:8080 requests
# 或先导出环境变量再安装
export https_proxy=http://127.0.0.1:8080
pip install requests
pip 同时支持命令行参数与环境变量两种方式,推荐后者,一次设置对当次会话的所有安装都生效。Maven(settings.xml)、Gradle(gradle.properties)、Go(GOPROXY)的思路类似,找到各自配置文件中的代理字段即可迁移。
团队环境的三条实践建议
- 区分配置作用域: 全局配置只影响本机,仓库级配置存放在 .git/config 中不入库,切勿误提交个人代理地址。
- 内网源绕行: 公司私有镜像域名加入 no_proxy 或按域名配置代理,避免内网下载绕道公网代理反而变慢。
- 凭证安全: 代理含账号密码时写作 http://user:pass@host 形式,仅存于本机配置文件,并注意不要出现在演示文档与截图中。
Article ID: 85
(本文仅供技术交流,请遵守法律法规)