返回
从Angular Team Commit 规范中学习 Git Commit 的规范和提交检测工具
前端
2023-09-29 02:14:07
引言
在 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 等工具进行检查,我们可以提高代码库的可读性和维护效率。这有助于团队成员更好地理解和审查彼此的改动,并提高团队的协作效率。