返回

从Angular Team Commit 规范中学习 Git Commit 的规范和提交检测工具

前端

引言

在 Git 中,提交信息起着至关重要的作用。它不仅有助于我们了解代码库的历史和演进,还能让团队成员在协作时更好地理解和审查彼此的改动。因此,在提交代码时遵循一定的规范至关重要,以便提高代码的可读性和维护效率。

Angular Team Commit 规范

Angular Team Commit Specification 是一个专门为 Angular 项目设计的提交信息规范。它提供了一系列清晰简洁的规则,旨在帮助开发人员编写出高质量的提交信息。这些规则包括:

  • 提交信息必须以动词开头,并使用祈使语气。 这有助于确保提交信息具有明确的目的性和可操作性。例如,可以使用「修复」、「添加」、「重构」等动词作为提交信息的开头。
  • 提交信息必须简短而有意义。 尽量控制提交信息在 50 个字符以内,并确保其包含所有必要的信息。
  • 提交信息必须包含与提交相关的 Jira 编号。 这有助于将代码提交与项目管理工具中的任务联系起来,便于团队成员跟踪和管理项目进度。
  • 提交信息必须遵循 camelCase 命名规范。 这有助于确保提交信息具有可读性和一致性。

CommitLint

CommitLint 是一个 JavaScript 库,可以帮助开发人员自动检查提交信息是否符合指定的规范。它可以与各种 Git 客户端集成,以便在提交代码时自动进行检查。

使用示例

以下是使用 CommitLint 检查提交信息是否符合 Angular Team Commit Specification 的 JavaScript 代码片段:

// 安装 CommitLint
npm install --save-dev @commitlint/cli

// 创建 .commitlintrc.js 文件
module.exports = {
  extends: ['@commitlint/config-angular'],
  rules: {
    'header-max-length': [2, 'always', 50],
    'subject-case': [2, 'always', 'lower-case'],
    'subject-empty': [2, 'never'],
    'subject-full-stop': [2, 'never'],
    'type-case': [2, 'always', 'lower-case'],
    'type-empty': [2, 'never'],
    'type-enum': [
      2,
      'always',
      ['build', 'chore', 'ci', 'docs', 'feat', 'fix', 'perf', 'refactor', 'revert', 'style', 'test'],
    ],
  },
};

// 在 package.json 中添加如下脚本
{
  "scripts": {
    "commit": "commitlint -E HUSKY_GIT_PARAMS",
  },
}

// 在 .husky/pre-commit 文件中添加如下内容
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

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

将以上代码添加到项目中后,每次提交代码时,CommitLint 就会自动检查提交信息是否符合 Angular Team Commit Specification。如果不符合规范,则会提示开发人员修改提交信息。

总结

通过遵循一定的提交信息规范并使用 CommitLint 等工具进行检查,我们可以提高代码库的可读性和维护效率。这有助于团队成员更好地理解和审查彼此的改动,并提高团队的协作效率。