该错误源于 composer 调用系统 git 时因配置不全或协议冲突导致克隆失败;需补全 Git 全局用户信息(user.name/user.email),并优先切换为 httpS 协议(如 composer config -g github-protocols https),再排查代理、ssl 或 Git 环境异常。
git 命令时被拒绝或中断。
检查并补全 Git 用户信息
Git 要求至少配置 user.name 和 user.email 才能正常执行某些操作(尤其在某些 Git 版本或容器环境中)。即使只是克隆,部分 Git 配置策略也会强制校验。
- 运行 git config –global user.name “Your Name” 和 git config –global user.email “you@example.com”
- 若仅用于依赖安装(无需提交),名字和邮箱可随意填写,但不能为空
- 检查是否误设了局部仓库配置:进入项目目录,运行 git config –list –show-origin,确认没有冲突的 local/user.email
确认 Git 协议与网络访问权限匹配
Composer 默认优先使用 ssh(如 git@github.com:user/repo.git)或 HTTPS(如 https://github.com/user/repo.git)。如果本地 Git 配置了 SSH 但未配置密钥,或公司网络屏蔽了 SSH 端口(22),就会卡在 clone 阶段。
- 临时让 Composer 强制走 HTTPS:运行 composer config -g github-protocols https
- 或者全局禁用 SSH:设置环境变量 export COMPOSER_GITHUB_PROTOCOL=https(linux/macOS)或 set COMPOSER_GITHUB_PROTOCOL=https(windows)
- 验证能否手动 git clone:比如 git clone https://github.com/composer/composer.git /tmp/test,失败则说明是网络或 Git 本身问题,不是 Composer 特有
排查代理、SSL 或 Git 安装异常
某些企业环境启用了 HTTPS 代理或中间人证书,导致 Git 的 SSL 握手失败;也可能是 Git 二进制损坏、路径错误,或混用了 msysgit / Git for Windows / WSL 不同版本。
- 检查 Git 是否可用:git –version 和 which git(macOS/Linux)或 where git(Windows)
- 若用代理,确保 Git 信任对应 CA:可临时关闭 SSL 验证(仅调试)git config –global http.sslVerify false(不推荐长期使用)
- Windows 用户注意:避免 Git 路径含中文或空格;WSL 中运行 Composer 时,确保调用的是 WSL 内的 Git,而非 Windows 主机 Git
基本上就这些。多数情况下补全 user.name/email + 切到 HTTPS 协议就能解决。不需要重装 Composer 或修改源码。