1. 为什么需要规范的Git提交信息
在团队协作开发中,Git提交信息(commit message)的规范性往往被忽视。我曾参与过一个中型项目,三个月后发现提交历史里充斥着"fix bug"、"update"、"tmp"这类毫无意义的描述。当需要排查某个功能的变更历史时,我们不得不逐个查看代码差异,效率极低。
规范的commit message能带来三个核心价值:
- 可读性:清晰的提交历史就像项目的开发日记,新成员可以通过
git log快速理解代码演进过程 - 可维护性:结合
git bisect等工具,能快速定位引入问题的提交 - 自动化:标准化的信息格式可以被工具解析,自动生成CHANGELOG.md等文档
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 主流规范方案对比
2.1 Angular规范
这是目前最流行的提交规范,其格式为:
code复制<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
- type:提交类型,如feat(新功能)、fix(修复bug)
- scope:影响范围,如模块名(可选)
- subject:简短描述
- body:详细说明(可选)
- footer:关联issue等(可选)
示例:
code复制feat(login): add OAuth2 support
- implement Google OAuth2 login
- add related API endpoints
Closes #123
2.2 Conventional Commits
这是对Angular规范的扩展,主要区别在于:
- 支持
!表示破坏性变更 - 更灵活的类型定义
- 明确的版本号关联规则
2.3 我们的选择
对于大多数项目,我推荐采用简化版的Angular规范:
- 强制要求type和subject
- body和footer可选
- 限制type为固定值(避免随意创造)
3. 完整配置方案
3.1 提交类型(type)定义
我们定义以下核心类型:
| 类型 | 说明
