代码提交检查

如何在 Git 提交时检查提交信息是否规范

在团队开发中,统一的提交信息格式对于代码库的可读性和可维护性至关重要。为了确保每次提交的提交信息都符合预定的规范,我们可以使用 commitlint 工具。本文将详细介绍如何在 Git 提交时检查提交信息是否规范。

1. 安装 commitlint

首先,我们需要在项目中安装 commitlint 及其相关依赖。你可以使用 npm 或 yarn 来安装这些依赖。

npm install --save-dev @commitlint/{config-conventional,cli}

或者使用 yarn:

yarn add --dev @commitlint/{config-conventional,cli}

2. 创建配置文件

接下来,我们需要创建一个配置文件来定义提交信息的校验规则。通常,这个文件命名为 .commitlintrc,并放在项目的根目录下。

以下是一个简单的 .commitlintrc 配置文件示例:

{
  "extends": ["@commitlint/config-conventional"],
  "rules": {
    "header-max-length": [2, "always", 72],
    "subject-case": [2, "never", ["sentence-case", "start-case", "pascal-case", "upper-case"]],
    "type-enum": [2, "always", ["feat", "fix", "docs", "style", "refactor", "test", "chore", "revert"]]
  }
}

在这个配置中:

  • header-max-length 规则确保提交信息的标题不超过 72 个字符。
  • subject-case 规则禁止使用某些类型的首字母大写。
  • type-enum 规则限制提交类型必须是 feat, fix, docs 等中的一个。

3. 设置 Git 钩子

为了在每次提交时自动检查提交信息,我们需要设置一个 Git 钩子。Husky 是一个常用的工具,可以帮助我们轻松地管理 Git 钩子。

首先,安装 Husky:

npm install --save-dev husky

或者使用 yarn:

yarn add --dev husky

然后,在 package.json 文件中启用 Husky:

{
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  }
}

如果你更喜欢手动创建 Git 钩子文件,可以在 .husky/commit-msg 文件中添加以下内容:

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx --no -- commitlint --edit "$1"

4. 测试配置

完成上述步骤后,我们可以通过提交一些不符合规范的提交信息来测试配置是否生效。例如,尝试提交一个没有类型前缀的提交信息:

git commit -m "This is a test commit"

如果配置正确,commitlint 会拦截这次提交并显示错误信息,提示提交信息不符合规范。

5. 推荐的提交信息格式

为了确保团队成员都能遵循相同的提交信息格式,建议在项目文档中明确推荐的提交信息格式。以下是一个常见的提交信息格式示例:

<type>(<scope>): <subject>
  • <type>: 提交类型,例如 feat(新功能)、fix(修复)、docs(文档)、style(样式)、refactor(重构)、test(测试)、chore(杂务)等。
  • <scope>: 提交影响的范围,例如 authuiapi 等。
  • <subject>: 提交的简短描述,不超过 50 个字符。

例如:

feat(auth): add login functionality

总结

通过使用 commitlint 和 Git 钩子,我们可以确保每次提交的提交信息都符合预定的规范。这不仅有助于提高代码库的可读性和可维护性,还能减少因提交信息不规范导致的问题。

本作品采用《CC 协议》,转载必须注明作者和本文链接
九九一十八,一步一个脚印
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!