在正规公司中,Git提交消息通常遵循Conventional Commits规范(约定式提交),这是一种结构化的提交消息格式,便于自动化工具生成变更日志、版本管理和代码审查。以下是完整的提交消息格式模板和示例:
基础格式规范
<类型>[<可选的作用域>]: <描述>
[可选的正文]
[可选的脚注]1. 提交类型(Type)
2. 完整模板示例
基础格式
<类型>[<作用域>]: <描述>带正文的完整格式
<类型>[<作用域>]: <描述>
## 变更内容
- 变更点1
- 变更点2
## 变更原因
[说明变更背景或动机]
## 注意事项
[兼容性说明/配置要求等]
Closes #<Issue编号>3. 实际场景示例
示例1:新功能(feat)
feat(auth): 添加OAuth2第三方登录
## 变更内容
- 集成Google OAuth2认证流程
- 新增用户授权令牌管理接口
- 添加登录状态持久化机制
## 变更原因
支持用户使用第三方账号快速登录,提升注册转化率
Closes #123示例2:修复Bug(fix)
fix(cart): 修复购物车商品数量计算错误
## 变更内容
- 修正商品折扣叠加计算逻辑
- 添加边界条件校验(负数/零值)
- 更新相关单元测试用例
## 变更原因
用户反馈购买多件商品时总价计算异常
Closes #456
Related to #789示例3:文档更新(docs)
docs(api): 更新支付接口文档
## 变更内容
- 补充V3版支付接口参数说明
- 添加错误码对照表
- 更新cURL请求示例
## 变更原因
支付接口升级至V3版本,需要同步文档示例4:重构(refactor)
refactor(order): 重构订单处理模块
## 变更内容
- 将订单状态机改为策略模式
- 优化数据库查询性能(减少3次查询)
- 统一错误处理机制
## 变更原因
原有代码耦合度高,难以扩展新支付方式示例5:破坏性变更(BREAKING CHANGE)
feat(api): 用户接口返回格式标准化
## 变更内容
- 统一所有用户接口返回格式为{code, data, msg}
- 移除废弃字段user.level
- 新增分页参数page_size
## 变更原因
提升API一致性,便于前端统一处理
BREAKING CHANGE:
1. user.level字段已删除,改用user.roles
2. 分页参数从count改为page_size
3. 错误码体系变更(详见迁移指南)
Closes #7894. 高级规范
作用域(Scope)
用于标识变更影响的模块/组件:
feat(ui): 添加日期选择器组件 # 作用域:UI层
fix(api): 修复用户查询超时问题 # 作用域:API层
perf(db): 优化订单表索引 # 作用域:数据库脚注(Footer)
常见脚注类型:
Closes #123 # 关闭Issue
Related to #456 # 关联Issue
BREAKING CHANGE: # 破坏性变更说明
Reviewed-by: @alice # 代码审查者多Issue关联
fix(payment): 修复支付宝回调验证失败
Closes #123, #456
Related to #7895. 公司内部最佳实践
提交前检查清单
✅ 类型是否准确
✅ 描述是否简洁(<50字符)
✅ 是否关联Issue
✅ 破坏性变更是否标注
✅ 是否需要添加测试
✅ 文档是否同步更新
团队协作建议
### 提交消息规范(团队版)
1. 强制要求:
- 必须使用Conventional Commits格式
- 每次提交必须关联Issue
- 破坏性变更需在代码评审中明确说明
2. 工具支持:
- 使用commitizen交互式生成提交消息
- 配置commitlint进行提交前检查
- 集成standard-version自动生成变更日志
3. 示例命令:
```bash
# 安装工具
npm install -g commitizen conventional-changelog
# 生成提交消息
git cz
---
### 6. 工具配置示例
#### commitlint配置(.commitlintrc.js)
```javascript
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'scope-case': [2, 'always', 'lower-case'],
'subject-empty': [2, 'never'],
'type-empty': [2, 'never'],
'type-enum': [
2,
'always',
['feat', 'fix', 'docs', 'style', 'refactor', 'perf', 'test', 'build', 'ci', 'chore', 'revert']
]
}
};总结
核心原则:清晰、简洁、机器可读
必备要素:类型 + 描述 + Issue关联
高级要素:作用域 + 正文 + 破坏性变更说明
工具支持:commitizen + commitlint + husky
团队协作:统一规范 + 自动化检查
评论