git代理配置冲突导致composer install卡在cloning失败,根本原因是git全局代理(http.proxy/https.proxy)与当前网络不兼容;应先检查并清空无效代理,或对github.com禁用代理,因composer底层调用git clone,代理由git决定而非composer配置。

Git 代理配置冲突导致 composer install 卡在 Cloning failed
Composer 拉包失败时如果看到类似 Cloning into 'xxx'... fatal: unable to access 'https://github.com/xxx/xxx.git/': Failed to connect to github.com port 443: Connection refused,大概率是 Git 的全局代理(http.proxy 或 https.proxy)与当前网络环境不兼容,比如代理已关闭、地址失效,或公司内网禁止走代理拉 GitHub 仓库。
- 先用
git config --global --get http.proxy和git config --global --get https.proxy查当前代理设置 - 如果返回非空值,且你当前不需要代理(比如在办公内网直连 GitHub),直接清空:
git config --global --unset http.proxy和git config --global --unset https.proxy - 若必须保留代理(如需访问私有 GitLab),但只想让 Composer 走直连,可对特定域名禁用代理:
git config --global http.https://github.com.proxy "" - 注意:Git 的 proxy 设置优先级高于系统环境变量,
HTTP_PROXY等变量即使设了也会被 Git 配置覆盖
Composer 自身的 git-options 不影响代理行为
有人误以为改 composer.json 里的 "git-options" 或运行 composer config git-options 能绕过代理,其实不能。这个配置只控制 clone 后的本地 Git 行为(比如 --depth=1),不干预网络连接本身。代理由 Git 底层决定,Composer 只是调用 git clone 命令。
抓取指定 GitHub用户的 Stars 项目,生成标准化中文 Markdown 报告。用户提及「分析 GitHub stars」「导出收藏项目」「汇总 GitHub 星标」「生成 stars 报告」或粘贴含 ?tab=stars 的链接时触发。执行通过 bash...
-
composer config -g repo.packagist composer https://packagist.org这类命令只改源,不影响 Git 拉取逻辑 - 想强制让 Composer 用 HTTPS 而非 SSH,可设
composer config -g github-protocols ["https"],但前提是 Git 的 HTTPS 代理或直连通 - 验证 Git 是否真能工作:手动执行
git clone https://github.com/composer/composer.git /tmp/test,失败就说明是 Git 层问题,不是 Composer 的锅
临时绕过 Git 代理跑 composer install
不想改全局 Git 配置?可以在命令前临时取消代理:
- Linux/macOS:
HTTP_PROXY= HTTPS_PROXY= composer install - Windows cmd:
set HTTP_PROXY= && set HTTPS_PROXY= && composer install - Windows PowerShell:
$env:HTTP_PROXY=""; $env:HTTPS_PROXY=""; composer install - 注意:这只是屏蔽环境变量,不会动
git config;如果 Git 已配了http.proxy,仍会生效,所以得配合上一条清空 Git 配置才彻底
CI/CD 环境中常见陷阱:Docker 容器里 Git 代理残留
Docker 构建时如果 base 镜像(比如某些 PHP 官方镜像)预装了 Git 并设置了代理,会导致 composer install 在容器内持续失败,即使宿主机没问题。
- 构建阶段加一句清理:
RUN git config --global --unset-all http.proxy && git config --global --unset-all https.proxy - 或者更稳妥:在
composer install前重置 Git 配置:git config --global http.sslVerify true(避免因证书问题误判为代理故障) - 不要依赖
git clone成功就认为 Composer 没问题——Composer 可能用到多个仓库(GitHub、GitLab、私有 Bitbucket),得逐个确认域名是否被代理规则拦截
git ls-remote https://github.com/composer/composer.git 能否快速返回结果,再跑 Composer。否则容易陷入“以为修好了,实际只是缓存没清”这种循环。










