git PHP commit 规范,git commit 时自动对所有 php 文件执行语法错误检查
使用 Shell 编写 hooks 下的 pre-commit 钩子,实现在 git commit 时检查所有的 .php 文件(忽略所有删除状态的文件)是否存在语法错误,如果存在错误,则终止提交,并输出相关错误信息。
#!/bin/bash
# @auth 后三排
# @site https://housanpai.com
# 错误消息内容
IS_ERROR_MESSAGE=()
while read st file
do
# 文件状态为 D 时跳出本次循环
if [ 'D' == "$st" ]
then
echo $file
continue
fi
# 文件末为不是 .php 时输出文件,并跳出本次循环
if [[ ! "$file" =~ (\.php$) ]]
then
echo $file
continue
fi
PHP_LINT=`php -l $file`
# 本文件不存在语法错误,输出结果,并跳出本次循环
if [ 0 -eq $? ]
then
echo $PHP_LINT
continue
fi
# 统计错误消息内容的数据个数
ERROR_COUNT=${#IS_ERROR_MESSAGE[@]}
# 将错误的存放到数组里面
IS_ERROR_MESSAGE[${ERROR_COUNT}]=$PHP_LINT
done <
`git diff --cached --name-status`
EOF
if [ -n "${IS_ERROR_MESSAGE}" ]
then
# 循环输出错误消息,并且指定文字颜色为红色
for ((i=0;i
do
echo -e "\033[31m ${IS_ERROR_MESSAGE[$i]} \033[0m"
done
exit 1
fi
exit 0
git PHP commit 规范,git commit 时自动对所有 php 文件执行语法错误检查相关推荐
- 如何配置log4j每天产生日志,并且当天日志大于10M时自动生成另一个文件
http://bbs.csdn.net/topics/390635339?page=1 如何配置log4j每天产生日志,并且当天日志大于10M时自动生成另一个文件 假设 11-11日 生成comlib ...
- iOS架构-静态库.a编译时自动导出.h头文件(24)
在使用Xcode成功编译一个静态库时,在对应的输出目录下有一个include目录,但是其中没有相关的.h头文件.由于.h文件和 .cpp文件是在同一个目录下,再加上文件数量较多,如果手动的将.h文件导 ...
- 消除VS2010创建C/C++项目时自动生成的臃肿文件的方法
使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘 ...
- 有自定义控件的网站项目发布时,“不允许循环文件引用”的错误”的解决方法
写了一个自定义控件,在项目中使用了多层嵌套母版,在使用各级母版的各个页面中添加了上面的自定义控件,编译测试无错,但发布总因为""不允许循环文件引用"的错误"而过 ...
- sqlserver执行更新语句时出现异常,t 附近有语法错误
之前一直是用的oracle进行开发,偶尔也用用mysql,现在项目中遇到金蝶的k3系统,就不得不用用sqlserver,看似大差不差的sql语言,换个数据库类型其实还是感觉蛮别扭的. 在sqlserv ...
- git commit规范 、CHANGELOG生成 和版本发布的标准自动化
长期以来,大家是不是受限于这种情况:团队中每位成员提交代码时填写的信息随意,没有一定的规范,在出问题后想要定位到某次提交记录时更是难上加难,或者是加上了 commitlint之类的规范,也没有添加ch ...
- Git 分支开发规范
您必须知道的 Git 分支开发规范 Git 是目前最流行的源代码管理工具. 为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作. 分支管理 分支命名 ma ...
- git 分支命名规范
主分支 master 主分支,所有提供给用户使用的正式版本,都在这个主分支上发布 开发分支 dev 多人合作的开发分支①每个人开发完成内容合并到此分支,供同事拉取②联调此分支上③联调完毕推到test分 ...
- IIS崩溃时自动抓取Dump
原文:IIS崩溃时自动抓取Dump 背景:在客户现场,IIS有时会崩溃,开发环境没法重现这个bug,唯有抓取IIS的崩溃是的Dump文件分析. IIS崩溃时自动抓取Dump,需要满足下面几个条件 1. ...
最新文章
- 黑马程序员___Java基础[02-Java基础语法](一)
- 发挥主观能动性,才可以能常人之所不能 - 阿里云MVP 杨洋专访
- 需要在Emulator上模拟来电 效果
- 031_MessageBox弹框
- html测试页,打印机测试页
- 使用 Maven 执行 java main class(java应用程序)
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (背包问题)
- xp,win7,win2003,win2008常用命令集
- 一些没啥用的大数据组件以及理由(持续更新中)+2020的Gartner曲线
- 推理计算过程_初中物理电学计算题第六讲:极值问题推理和限制条件
- Qt 中pro文件换行注意的问题
- 面试官系统精讲Java源码及大厂真题 - 44 场景实战:ThreadLocal 在上下文传值场景下的实践
- Python:使用threading模块实现多线程(转)
- 企业之HA~cluster
- Java虚拟机中的堆(Heap)
- 数据管理之元数据管理
- ae怎么卸载已经安装的插件_ae红巨人插件卸载教程!
- windows下jenkins批处理执行git pull失败的原因
- 跳马周游c++_C++——跳马问题(广搜)
- 图像数据标记-图片筛选教程
热门文章
- 使用ASP.NET Web API和Handlebars的Web模板
- 蚂蚁金服 AntV 开源地理可视化引擎 L7 2.0 发布
- TeamCity+Rancher+Docker实现.Net Core项目DevOps(目前成本最小的DevOps实践)
- 简单的动态JavaScript Ajax函数
- hibernate整合mysql配置文件_springboot整合hibernate配置
- 采用计算机数控技术的自动控制系统为,数控机床控制系统
- css设置打印样式表,[CSS] 创建打印样式表
- 希尔排序是一种稳定的排序算法_排序算法—希尔排序
- 在tomcat服务器部署finereport
- set 有序吗js_2021了,你的vue实践够熟练了吗?源码思维呢?