composer install 报“git not recognized”错误是因为其在安装 dev 分支或 vcs 类型包时需调用 git 命令,而 windows 未安装 git 或未将其路径加入 path 环境变量。

为什么 composer install 报错 “git is not recognized as an internal or external command”
因为 Composer 在安装某些包(尤其是 dev- 分支、vcs 类型仓库或未打 tag 的提交)时,会调用系统 git 命令克隆源码。Windows 默认不带 Git,而你又没把 Git 的 bin 目录加进 PATH,就会触发这个错误。
注意:不是所有依赖都强制走 Git —— 如果包已发布到 Packagist 且有稳定版本(如 "monolog/monolog": "^2.0"),Composer 会直接下载 zip 包;但一旦 composer.json 里写了 "dev-master" 或指定了 "type": "vcs",它就一定会尝试执行 git clone。
如何确认 Git 是否可用且被 Composer 正确识别
在命令行中运行以下两条命令,缺一不可:
-
git --version—— 应输出类似git version 2.40.1.windows.1 -
where git(Windows)或which git(macOS/Linux)—— 确认路径是否在PATH中
如果第一条失败,说明 Git 没装;如果第二条找不到路径,说明 PATH 没配对。Composer 不读注册表或安装目录,只认 PATH 环境变量。
Windows 下最稳妥的 Git 安装与 PATH 配置方式
别用绿色版、别手动解压后硬塞路径。推荐使用官方安装器:https://www.php.cn/link/7ca2d2c04c0bb98f7b3481751387214a,安装时务必勾选:
- Add Git to the system PATH(选 “Use Git from Windows Command Prompt” 或 “Git from the command line and also from 3rd-party software”)
- 不要选 “Use the Windows built-in OpenSSH”(除非你明确需要),默认用 Git 自带的 SSH 更省事
- 安装完重启终端(CMD/PowerShell/IDE 内置终端都要关掉重开)
验证:新开一个 CMD,运行 git --version 和 composer install,不再报 git is not recognized 即可。
不想装 Git?临时绕过 Git 依赖的几种方法
仅适用于开发调试或 CI 环境受限场景,不建议长期使用:
- 强制走 dist:在
composer install后加--prefer-dist,让 Composer 尽量跳过 Git 克隆,改用 zip 包 - 禁用 VCS:设环境变量
COMPOSER_DISABLE_NETWORK=1+ 提前用composer install --no-scripts并确保vendor/已存在(适合离线部署) - 改写依赖来源:把
"dev-master"改成具体稳定版号(如"^3.5"),或在repositories中指定"type": "package"手动定义 zip 地址
注意:--prefer-dist 并不能 100% 规避 Git —— 如果某包在 composer.json 中显式声明了 "source" 且无对应 dist,Composer 仍会 fallback 到 git clone。
真正省事的办法,就是老老实实装 Git 并配好 PATH。很多人卡在这一步,不是因为不会,而是没意识到 Composer 对 git 命令的调用是隐式的、条件触发的 —— 它可能在某个 dev 分支更新时才突然冒出来,而不是一上来就报错。







