Husky校验Git Commit Mesage,让代码提交更规范
2024-01-23 19:15:14
前言
在前端开发团队中,代码提交是日常工作的重要组成部分。为了确保代码提交的质量和可读性,团队成员需要遵循一定的提交规范。例如,提交消息需要清晰简洁,准确代码更改的内容,并使用统一的格式。
然而,在实际工作中,由于团队成员的个人习惯不同,提交消息的质量往往参差不齐。有些提交消息过于简短,无法清晰地代码更改的内容;有些提交消息则过于冗长,难以阅读和理解;还有些提交消息甚至包含与代码更改无关的内容。
为了解决这些问题,我们可以使用Husky工具对Git Commit Message进行校验。Husky是一个用于在Git提交时运行脚本的工具。我们可以通过配置Husky,在提交代码时自动运行一个脚本,对提交消息进行校验。如果提交消息不符合规范,脚本将阻止提交并提示用户修改提交消息。
安装Husky
要安装Husky,需要先安装Node.js。安装完成后,打开终端,运行以下命令:
npm install husky --save-dev
安装完成后,在项目根目录下创建一个名为.husky
的目录,并在.husky
目录下创建一个名为pre-commit
的文件。.husky/pre-commit
文件将作为提交前的钩子脚本,在每次提交代码时自动运行。
配置Husky
在.husky/pre-commit
文件中,我们可以编写脚本来对提交消息进行校验。常见的校验规则包括:
- 提交消息不能为空
- 提交消息长度不能超过一定字符数
- 提交消息必须以大写字母开头
- 提交消息必须包含特定的或短语
- 提交消息不能包含脏话或其他不当语言
例如,以下脚本将对提交消息进行如下校验:
- 提交消息不能为空
- 提交消息长度不能超过50个字符
- 提交消息必须以大写字母开头
- 提交消息必须包含关键字"feat"或"fix"
#!/bin/sh
# 检查提交消息是否为空
if [ -z "$HUSKY_GIT_PARAMS" ]; then
echo "提交消息不能为空"
exit 1
fi
# 检查提交消息长度是否超过50个字符
if [ ${#HUSKY_GIT_PARAMS} -gt 50 ]; then
echo "提交消息长度不能超过50个字符"
exit 1
fi
# 检查提交消息是否以大写字母开头
if [[ ! ${HUSKY_GIT_PARAMS:0:1} =~ ^[A-Z] ]]; then
echo "提交消息必须以大写字母开头"
exit 1
fi
# 检查提交消息是否包含关键字"feat"或"fix"
if [[ ! ${HUSKY_GIT_PARAMS} =~ (feat|fix) ]]; then
echo "提交消息必须包含关键字'feat'或'fix'"
exit 1
fi
使用Husky
配置好Husky之后,在提交代码时,Husky将自动运行.husky/pre-commit
脚本,对提交消息进行校验。如果提交消息不符合规范,Husky将阻止提交并提示用户修改提交消息。
例如,如果我们尝试提交一个空的消息,Husky将阻止提交并输出以下提示:
提交消息不能为空
如果我们尝试提交一个超过50个字符的消息,Husky将阻止提交并输出以下提示:
提交消息长度不能超过50个字符
如果我们尝试提交一个不以大写字母开头的消息,Husky将阻止提交并输出以下提示:
提交消息必须以大写字母开头
如果我们尝试提交一个不包含关键字"feat"或"fix"的消息,Husky将阻止提交并输出以下提示:
提交消息必须包含关键字'feat'或'fix'
结语
通过使用Husky工具,我们可以对Git Commit Message进行校验,确保提交的消息符合规范,从而让代码提交更加高效和规范。Husky是一个非常有用的工具,可以帮助团队成员养成良好的提交习惯,提高团队协作效率。
除了上面提到的校验规则之外,我们还可以根据团队的实际情况,添加更多的校验规则。例如,我们可以要求提交消息中必须包含Jira工单编号,或者要求提交消息中必须包含代码变更的详细说明。
总之,Husky是一个非常灵活的工具,我们可以根据自己的需要进行配置。通过合理地使用Husky,我们可以有效地规范团队的代码提交行为,提高代码提交的质量和可读性。