1. Conventional Commits 1.0.0 的结构中 [optional scope]:
请说明 Conventional Commits 1.0.0 规范所定义的提交消息结构,即 <type>[optional scope]: <description> 的各个组成部分及其含义?
- 提交消息头部(header)的组成:type、scope、description
- 各组成部分的书写规范与约束
- 与 SemVer 的联动关系
Conventional Commits 1.0.0 规定提交消息的头部格式为 <type>[optional scope]: <description>。其中 type 是必填的提交类型,如 feat(新功能)、fix(缺陷修复)、refactor、docs、chore 等;[optional scope] 是可选的作用域,用于标注变更影响的模块或包,通常用括号包裹,如 feat(parser): ...;: (冒号加空格)作为分隔符;description 是对变更的简短描述。描述应使用小写、命令式语气,长度一般不超过 50 个字符。整条 header 通常控制在 100 字符以内。该规范的核心价值在于让提交消息可被机器解析,从而自动生成 CHANGELOG 和确定语义化版本号。
规范化的头部是自动化工具链(如 semantic-release、release-please)解析版本变更的基础。feat 与 fix 是唯一会直接影响版本号的类型,其中 feat 触发 MINOR 升级、fix 触发 PATCH 升级,BREAKING CHANGE 触发 MAJOR。因此头部的结构约束本质上是把"这次变更是什么"以结构化方式编码,供工具与后续评审者理解。