返回

Husky校验Git Commit Mesage,让代码提交更规范

前端

前言

在前端开发团队中,代码提交是日常工作的重要组成部分。为了确保代码提交的质量和可读性,团队成员需要遵循一定的提交规范。例如,提交消息需要清晰简洁,准确代码更改的内容,并使用统一的格式。

然而,在实际工作中,由于团队成员的个人习惯不同,提交消息的质量往往参差不齐。有些提交消息过于简短,无法清晰地代码更改的内容;有些提交消息则过于冗长,难以阅读和理解;还有些提交消息甚至包含与代码更改无关的内容。

为了解决这些问题,我们可以使用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,我们可以有效地规范团队的代码提交行为,提高代码提交的质量和可读性。