如何设置Git钩子(hooks)在提交前自动运行composer脚本(如lint, test)?
发布时间 - 2025-11-19 00:00:00 点击率:次可通过 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(但应谨慎使用)。
基本上就这些。设置完成后,每次提交都会自动检查代码质量和测试通过情况,帮助维护项目稳定性。
# php
# js
# git
# json
# composer
# ai
# echo
# if
# 跳过
# 自动运行
# 放在
# 就能
# 你在
# 会在
# 可以通过
# 都将
# 可将
# 可通过
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
如何在腾讯云服务器快速搭建个人网站?
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
移动端脚本框架Hammer.js
如何在IIS中新建站点并解决端口绑定冲突?
Laravel如何实现本地化和多语言支持?(i18n教程)
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
黑客如何利用漏洞与弱口令入侵网站服务器?
公司门户网站制作流程,华为官网怎么做?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
javascript中闭包概念与用法深入理解
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
北京网站制作的公司有哪些,北京白云观官方网站?
如何基于PHP生成高效IDC网络公司建站源码?
如何自定义建站之星网站的导航菜单样式?
JS弹性运动实现方法分析
JS经典正则表达式笔试题汇总
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
高端企业智能建站程序:SEO优化与响应式模板定制开发
北京网站制作公司哪家好一点,北京租房网站有哪些?
使用豆包 AI 辅助进行简单网页 HTML 结构设计
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
如何快速选择适合个人网站的云服务器配置?
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
微信推文制作网站有哪些,怎么做微信推文,急?
如何在腾讯云服务器上快速搭建个人网站?
简单实现Android验证码
Laravel如何记录自定义日志?(Log频道配置)
如何在Windows服务器上快速搭建网站?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
简单实现Android文件上传
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
微信小程序 canvas开发实例及注意事项
如何在VPS电脑上快速搭建网站?
Firefox Developer Edition开发者版本入口
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
微信小程序 闭包写法详细介绍
网站建设保证美观性,需要考虑的几点问题!
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
JavaScript数据类型有哪些_如何准确判断一个变量的类型


.json 中定义脚本