使用husky让代码提交更规范,格式化commit,checkout

72 阅读1分钟

前言: 尝试过使用.git/hooks增加,其实我们可以在hooks的目录里面看到很多的xxx.sample,但是修改后会发现是不起作用的。

husky

typicode.github.io/husky/zh/

安装

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