答案是Git未正确安装或PATH未配置导致Composer无法调用git命令;需在PowerShell中验证git --version,重装Git时勾选“Git from the command line”选项,或手动将C:\Program Files\Git\bin加入系统PATH,并重启终端生效。

在 Windows 10 上用 Composer 安装 ThinkPHP 6.0 时,执行 composer create-project topthink/think tp6 却突然中断并报出 sh: git: command not found 或 git was not found in your PATH,这不是 ThinkPHP 或 Composer 本身出错,而是系统根本没找到 git 命令——哪怕你电脑里装了 GitHub Desktop 或 Visual Studio,只要没装命令行版 Git 或路径没配对,Composer 就会在拉取 dev 分支、VCS 仓库或未打包依赖时直接卡死。
确认 Git 是否真可用
别信安装记录或 GUI 软件图标,必须用终端验证:
打开 PowerShell(不是 CMD),输入:
git --version
如果返回 git version 2.40.1.windows.1 这类结果,说明 Git 已装;若提示 The term 'git' is not recognized,说明命令行 Git 根本没装,或装了但没进系统 PATH。
立即学习“PHP免费学习笔记(深入)”;
【PowerShell 必须新开一个窗口测试,旧窗口可能缓存旧环境变量】
Windows 下 Git 安装与 PATH 配置
方法一:重装 Git 并勾选关键选项
去 git-scm.com/download/win 下载最新安装包,运行后,在 “Adjusting your PATH environment” 步骤中,必须选择 “Git from the command line and also from 3rd-party software”——这是唯一能让 PHP 子进程(比如 Composer 调用的 git)识别到 git.exe 的选项。
方法二:手动补 PATH(适用于已装但路径失效)
先查真实安装路径:在文件资源管理器中打开 C:\Program Files\Git\bin 或 C:\Users\{用户名}\AppData\Local\Programs\Git\bin,确认 git.exe 存在;
然后右键“此电脑”→“属性”→“高级系统设置”→“环境变量”,在“系统变量”中找到 Path,点击“编辑”→“新建”,粘贴刚才确认的 bin 目录完整路径(例如 C:\Program Files\Git\bin);
最后关闭所有 CMD/PowerShell 窗口,重新打开一个,再跑 git --version 验证。
注意:不要加 cmd 目录,只加 bin;cmd 目录里只有 git.exe 的包装脚本,PHP 调用时会失败。
GInstall OneClick — 一键安装 GitHub 项目:规划、克隆、安装 Node 依赖、运行开发脚本。适用于想要获取 GitHubNode.js 项目的用户。
绕过 Git 依赖的临时方案
第一步:强制走压缩包而非源码
在项目目录下,PowerShell 中执行:
composer create-project topthink/think tp6 --prefer-dist
第二步:禁用开发依赖进一步减负
加上 --no-dev 可跳过 PHPUnit、PHPStan 等需 Git 克隆的包:
composer create-project topthink/think tp6 --prefer-dist --no-dev
第三步:指定国内镜像源避免二次触发 Git
执行:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
这三步组合能避开 90% 的 Git 报错场景,尤其适合内网、演示或快速原型搭建。但请记住:--prefer-dist 只对已发布版本有效,若 composer.json 显式写了 "dev-master" 或私有仓库地址,仍会 fallback 到 git clone。
验证 Composer 是否真正识别 Git
① 在 PowerShell 中运行:
composer diagnose
② 观察输出中是否包含:Git binary found at: C:\Program Files\Git\bin\git.exe
③ 若仍显示 Git not found,说明当前执行上下文(比如 PHP-FPM、IDE 内置终端、Webhook 脚本)加载的是另一套环境变量;此时需用绝对路径调用:
php -d "memory_limit=-1" "C:\Program Files\Git\bin\git.exe" --version && composer create-project topthink/think tp6
这一步能绕过 PATH 查找机制,直连可执行文件,是排查环境隔离问题的终极验证手段。


















