Git Commit 提交信息标准格式
采用 Conventional Commits 规范,方便自动生成 ChangeLog、语义化版本号,并让团队提交信息保持一致。
格式模板
text
<type>[optional(scope)]: <subject>
<body>
<footer>
- Header(首行)
- 长度 ≤ 50 字符,祈使句,首字母小写,末尾不加句号。
- 组成:
type+ 可选scope+subject。 - 示例:
feat(api): add rate-limit middleware
- 空行:Header 与 Body 之间必须空一行。
- Body(可选) :说明 动机 与 对比,每行 ≤ 72 字符。
- Footer(可选) :
- 关联 / 关闭 Issue:
Closes #123、Refs #456。 - 破坏性变更:
BREAKING CHANGE: xxx。
- 关联 / 关闭 Issue:
常用 type 枚举
| type | 说明 |
|---|---|
| feat | 新功能 / 特性 |
| fix | Bug 修复 |
| docs | 文档变更 |
| style | 代码格式(不影响逻辑) |
| refactor | 代码重构 |
| perf | 性能优化 |
| test | 测试相关 |
| build | 构建系统 / 依赖变更 |
| ci | CI/CD 配置 |
| chore | 其他杂项 |
| revert | 回滚提交 |
使用建议
- 保持原子性:一次提交只做一件事,若涉及多个 type,拆分成多次 commit。
- 配合工具 :
- Commitizen:交互式生成提交信息。
- commitlint:在 Git 钩子中校验提交格式。
- 收益 :
- 自动生成
CHANGELOG.md。 - 自动推断语义化版本号(major / minor / patch)。
- 让 PR Review 与
git log更清晰易读。
- 自动生成
参考文档:Conventional Commits v1.0.0、Angular / Vue / GitLab 提交规范实践。