Composer报“Git version too low”是因系统Git版本<2.19.2,需升级git本身:Windows用winget或官网安装包;Linux(如CentOS)需源码编译并更新PATH;Mac用Homebrew安装并确保PATH优先级正确。

Composer 报错 “Git version too low” 时,不是 Composer 的问题,而是它调用的系统 Git 客户端版本不满足最低要求(通常 ≥2.19.2),必须升级本地 git 可执行文件本身。
为什么 Composer 会卡在 Git 版本检查上
Composer 在执行 composer install 或 composer update 时,若依赖项是通过 Git URL(如 git@github.com:xxx/yyy.git 或 https://github.com/xxx/yyy.git)声明的,就会调用系统命令行的 git。它会先运行 git --version 获取版本号,并拒绝使用低于安全/功能阈值的版本(例如旧版 Git 缺少对现代 SSH 密钥格式、HTTP/2、refspec 过滤等的支持)。
常见报错片段包括:
Failed to clone https://github.com/xxx/yyy.git via https, ssh protocols, aborting. fatal: unable to access 'https://github.com/xxx/yyy.git/': Could not resolve host: github.com # 或更直接的提示: The git executable is too old. Please upgrade to Git 2.19.2 or higher.
- 这个检查发生在 Composer 内部,无法跳过或绕过(
--ignore-platform-reqs不起作用) - 即使你用的是最新版 Composer,只要底层
git命令太老,照样失败 - Windows 上尤其常见:Git for Windows 自带的
git.exe路径可能被 PyCharm / IDEA / VS Code 缓存,但 Composer 读的是PATH中第一个匹配的git
Windows:用 winget 或官方安装包覆盖升级
这是最快最稳的方式,避免 PATH 冲突和多版本共存混乱。
- 打开 PowerShell(管理员非必需),运行:
winget install --id Git.Git -e --source winget - 或者去 git-scm.com/download/win 下载最新
Git-2.45.0-64-bit.exe(截至 2026 年 4 月),双击安装,勾选 “Add Git to the system PATH”(推荐选第二个选项:“Git from the command line and also from 3rd-party software”) - 安装完成后,在新打开的 CMD 或 PowerShell 中执行:
git --version,确认输出 ≥2.19.2 - 注意:PyCharm / IDEA 等 IDE 可能仍缓存旧路径,需手动进
Settings > Version Control > Git改为C:\Program Files\Git\bin\git.exe,并点Test
Linux(CentOS/RHEL/AlmaLinux):源码编译是最可靠方案
系统默认仓库(如 baseos)里的 git 版本长期停留在 1.8.x 或 2.17.x,yum update git 无效,必须手动编译。
- 先卸载旧版:
yum remove git git-core - 装依赖(缺一不可):
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker xmlto asciidoc - 下载源码(以
v2.45.0为例):wget https://www.kernel.org/pub/software/scm/git/git-2.45.0.tar.gz - 解压编译:
tar -zxf git-2.45.0.tar.gz && cd git-2.45.0 && make configure && ./configure --prefix=/usr/local/git && make && sudo make install - 更新环境变量:
echo 'export PATH=/usr/local/git/bin:$PATH' >> ~/.bashrc && source ~/.bashrc - 验证:
git --version应输出git version 2.45.0;再运行which git确认路径是/usr/local/git/bin/git
Mac:优先用 Homebrew,但注意 M1/M2 芯片的路径差异
Homebrew 安装的 Git 默认在 /opt/homebrew/bin/git(Apple Silicon)或 /usr/local/bin/git(Intel),而系统自带的是 /usr/bin/git(版本极老,且不可删)。
- 确保已装 Homebrew,然后运行:
brew install git(会自动链接到/opt/homebrew/bin/git) - 检查
PATH顺序:运行echo $PATH,确认/opt/homebrew/bin(或/usr/local/bin)在/usr/bin之前 - 如果没生效,编辑
~/.zshrc,加一行:export PATH="/opt/homebrew/bin:$PATH",再source ~/.zshrc - 验证:
which git输出应为 Homebrew 路径,git --version≥2.19.2 - 额外提醒:某些 CI 工具(如 GitHub Actions macOS runner)默认用系统
/usr/bin/git,需显式指定路径或设env: GIT_PATH: /opt/homebrew/bin/git
真正容易被忽略的点是:升级完 git 后,别只在当前终端验证 —— Composer 往往跑在另一个上下文里(比如 Jenkins Agent、Docker 容器、PHP-FPM 子进程),它们的 PATH 和用户环境可能完全不同。务必在实际执行 composer install 的那个环境中,用相同用户、相同 shell、相同 PATH 设置下,亲手敲一遍 git --version 和 which git。


















