老大前两天要求git提交时填写的信息必须是以某个格式提交,比如改bug需要以[fixbug]开头。但是有时候一懒就忘了加这些前缀了。所以想到git钩子,可以在提交之前写一个校验脚本。
git项目下的 .git\hooks\commit-msg文件内容更改为:
test "" != "$(grep '^\[.*\]' "$1")" || {
echo >&2 "需要以[xx]开头,改bug[]里填禅道上的bug编号,否则填开发版本编号"
exit 1
}
解释一下语句涉及的命令
test语法: test a!=b
$() : 表示里面执行括号里的语句并返回值
grep语法: grep ‘正则表达式’ 处理的目标文件或变量
$1: $后跟数字,表示传给此脚本的参数,1代表第1位
echo语法: >表示输出到哪里 &2表示输出到错误显示通道,默认是&1正确通道,正确通道不会显示出来
|| :命令或执行,如果前一个为true则不执行后一个命令
exit返回0则成功,1则失败
运行效果: