前言: 尝试过使用.git/hooks增加,其实我们可以在hooks的目录里面看到很多的xxx.sample,但是修改后会发现是不起作用的。
husky
安装
npm install --save-dev husky
npx husky init # 这个会自动添加pre-commit 如果不需要可以使用 npx husky install 既可以
前端项目使用
需求1: 提交信息必须是xxx开头
对于检测git提交信息,可以使用commit-msg
增加一下代码
# 获取提交信息
commit_message=$(cat "$1")
if [[ $commit_message =~ ^xxx ]]; then
exit 0
else
echo "❌ Error: 格式不正确"
exit 1
fi
需求2: 分支信息必须是xxx格式
husky没有pre-checkout,只有post-checkout,
post-checkout弊端是不会阻止创建分支
思路如下: 1、查看当前分支然后判断是否合规,2、不合规的切回上一个分支,删除当前分支
branch_name=$(git symbolic-ref --short HEAD)
if [[ ! $branch_name =~ ^xxxx ]]; then
echo "❌ Error: 错误'."
git checkout @{-1}
git branch -D $branch_name
exit 1
fi