可通过 Git pre-commit 钩子在提交前自动运行 Composer 脚本。2. 在 .git/hooks/ 目录创建可执行的 pre-commit 文件,调用 composer run lint 和 test 进行代码检查与测试。3. 确保 composer.json 定义了相关脚本命令。4. 钩子不会自动共享,建议将脚本放入项目并软链接安装。5. 可优化为仅对修改的文件运行检查。6. 紧急时可用 git commit --no-verify 跳过验证。设置后每次提交都将自动确保代码质量。

在提交代码前自动运行 Composer 脚本(如代码检查、单元测试),可以通过 Git 的 pre-commit 钩子实现。这个钩子会在每次执行 git commit 时触发,适合用来运行 lint 或 test 命令,确保提交的代码符合质量标准。
1. 创建 pre-commit 钩子脚本
进入你的项目根目录下的 .git/hooks/ 目录:
创建或编辑 pre-commit 文件:
用编辑器打开 pre-commit,写入以下内容:
运行 composer lint(假设你在 composer.json 中定义了 lint 脚本)
composer run lint --no-interaction
检查上一条命令是否成功
if [ $? -ne 0 ]; then echo "❌ Lint 失败,提交被阻止" exit 1 fi
运行 composer test
composer run test --no-interaction
if [ $? -ne 0 ]; then echo "❌ 测试失败,提交被阻止" exit 1 fi
echo "✅ 代码检查和测试通过,允许提交" exit 0
2. 在 composer.json 中定义脚本
确保你的 composer.json 中定义了 lint 和 test 命令,例如:
这样 composer run lint 和 composer run test 就能正确执行。
3. 注意事项与优化建议
- Git 钩子不会随项目自动共享,团队成员需手动设置或通过脚本安装。
- 可将钩子脚本放在项目根目录(如
scripts/pre-commit),然后在初始化项目时软链接到.git/hooks/:
- 考虑只对相关文件运行检查(如仅 PHP 文件被修改时才 lint),提升效率。
- 若想跳过钩子(紧急情况),使用
git commit --no-verify(但应谨慎使用)。
基本上就这些。设置完成后,每次提交都会自动检查代码质量和测试通过情况,帮助维护项目稳定性。










