用途:在编写 Git 提交信息、任务完成需提交变更、项目使用 semantic-release/commitizen/git-cliff,或需要校验提交格式、配置提交信息校验与变更日志生成、实施语义化版本自动化、审查提交合规性、培训团队提交规范时使用本技能。
主要能力:按 Conventional Commits v1.0.0 规范组织提交信息,结构为 <type>[optional scope]: <description>,可选正文与页脚。必需类型 feat(新功能,MINOR)与 fix(缺陷修复,PATCH);推荐类型含 build、ci、docs、perf、refactor、style、test,另有 chore、revert。破坏性变更通过页脚 BREAKING CHANGE 或类型/范围后的 ! 表示,对应 MAJOR 版本。规范要求类型后接可选范围、可选 ! 和必需的冒号加空格;正文与描述之间空一行;页脚 token 用 - 代替空格,BREAKING CHANGE 必须大写。描述建议使用祈使现在时、首字母不大写、结尾不加句号,整个头部控制在 72 字符内。
使用方式:可安装 commitlint 校验,命令为 npm install --save-dev @commitlint/cli @commitlint/config-conventional,并创建 commitlint.config.js 配置;也可用 pre-commit 钩子强制格式,或用 semantic-release、git-cliff 从提交历史生成变更日志。
适用场景:结构化项目提交、自动化版本发布、变更日志生成、团队提交规范培训。
限制:除 feat 和 fix 外的类型无隐式 SemVer 影响,除非含 BREAKING CHANGE;合并提交通常被变更日志生成器忽略;规范大小写处理由实现决定,但 BREAKING CHANGE 必须大写;错误类型可在合并前用 git rebase -i 修改。具体工具配置细节暂未提供。