husky git提交校验

在团队协作开发过程中,规范的git提交信息对于代码的管理非常重要。通过规范的commit message可以更容易地追溯代码的变更历史,帮助团队成员更好地理解代码的变更内容。而husky可以帮助我们在提交代码时进行校验,确保提交信息符合规范。本文将介绍husky的基本用法以及如何使用husky进行git提交信息的校验。
什么是husky?
Husky是一个可以让我们在git提交前执行脚本的工具,它可以用来增强git提交的流程,比如在提交前进行lint操作、校验commit message等。Husky本身依赖于Node.js环境,所以需要先安装Node.js和npm。可以通过以下命令安装husky:
npm install husky --save-dev
配置husky
安装好husky之后,我们需要对git hooks进行配置。在项目根目录下新建一个.husky文件夹,然后在.husky文件夹下新建一个pre-commit文件(也可以是其他git hooks,比如pre-push)。在pre-commit文件中,我们可以编写我们需要执行的脚本。比如,我们可以用下面的脚本来校验commit message的格式:
#!/bin/sh
commit_msg=(cat1)
# 校验commit message的格式
if [ ! -n "(echocommit_msg | grep -E '^(feat|fix|docs|style|refactor|test|chore)(\(.+\))?: .{1,50}$')" ]; then
echo "提交信息格式不符合规范!请按照以下格式提交:"
echo "type(scope): message"
exit 1
fi
上面的脚本会在提交代码时校验commit message的格式,格式要求为type(scope): message,其中type为commit类型(feat、fix、docs、style、refactor、test、chore);scope为本次变更的范围(可选);message为具体的变更内容,长度不超过50个字符。
配置Git hooks
配置好了husky之后,我们需要配置Git hooks,在项目根目录下的package.json文件中添加如下内容:
{
"husky": {
"hooks": {
"pre-commit": "sh .husky/pre-commit"
}
}
}
这样,当我们在提交代码时,husky就会自动执行.husky文件夹下的pre-commit文件中的脚本,校验提交信息的格式。如果提交信息不符合规范,git提交就会被阻止。
测试
为了测试我们的husky配置是否生效,我们新建一个测试文件test.js,并提交一个不符合规范的commit message:
git add test.js
git commit -m "add a new file"
此时git提交会被阻止,并提示提交信息格式不符合规范。然后我们修改commit message为符合规范的格式:
git commit --amend
再次提交就会成功了。
结语
通过husky的配置,我们可以很方便地对git提交信息进行校验,确保提交信息符合规范。这样不仅有利于团队成员更好地理解代码变更内容,还能提高代码管理的规范性。
极客笔记