Composer报“git不是内部或外部命令”是因系统PATH未包含Git路径;需检查git --version,Windows加Git bin目录到PATH,macOS/Linux确认which git并配置shell文件,或临时启用use-zip true。

Composer 报错 “git 不是内部或外部命令” 就是它要调用 git 却根本找不到可执行文件——不是 Composer 本身的问题,而是系统 PATH 没把 Git 的安装路径加进去。
为什么 Composer 非要用 git?
Composer 默认从 GitHub、GitLab 等源拉取包时,优先走 git clone(尤其 dev 分支、未打包的仓库),比下载 zip 包更灵活。如果没装 Git 或 PATH 不对,就会卡在 Cloning failed using an ssh command 或直接报 “不是内部或外部命令”。
- 即使你只装了 GitHub Desktop,它默认不把
git加入系统 PATH - Windows 上 Git for Windows 安装时勾选 “Add Git to the system PATH” 才有效
- macOS 用 Homebrew 装的 Git 通常没问题;但手动解压的 Git 二进制包必须自己配 PATH
检查 git 是否真可用
别信“我明明装过了”,打开新终端(CMD/PowerShell/Terminal),直接运行:
git --version
如果提示“不是内部或外部命令”,说明系统确实找不到 git。这时候:
- Windows:去
C:\Program Files\Git\bin或C:\Users\{user}\AppData\Local\Programs\Git\bin找git.exe,把整个bin目录路径加到系统环境变量PATH中 - macOS/Linux:运行
which git,若为空,重装 Git(brew install git)或把/usr/local/bin(或实际路径)加入~/.zshrc或~/.bash_profile的PATH - 重启终端再试——环境变量不会自动刷新到已打开的窗口
不想装 Git?临时绕过(仅限简单场景)
某些包纯 PHP、无子模块、只有稳定 tag,可以强制让 Composer 改用 zip 下载:
composer config -g github-protocols https
再加这句禁用 Git 克隆(慎用):
composer config -g disable-tls false
但更关键的是设置:
composer config -g use-zip true
- 这个配置会让 Composer 对所有包尝试走
https://api.github.com/repos/{user}/{repo}/zipball/{ref} - 缺点:无法检出 submodules、无法切本地分支、部分私有仓库或自建 Git 服务不支持 zipball
- 遇到
Failed to download ... No zip archive found就得老老实实配好git
PATH 配错是最常见的根因,很多人改了环境变量却没开新终端验证;另外,CI/CD 环境(比如 GitHub Actions)里也要显式安装 git 步骤,不能默认存在。










