Git 提交规范
本项目遵循 Conventional Commits 规范,标准化的提交信息有助于自动生成 Changelog 和语义化版本控制。
📝 提交格式
<type>(<scope>): <subject>
<body>
<footer>
| 部分 | 必填 | 说明 |
|---|---|---|
| type | ✅ | 提交类型 |
| scope | ❌ | 影响范围(如 auth, user) |
| subject | ✅ | 简短描述(≤50字) |
| body | ❌ | 详细说明(解释"为什么") |
| footer | ❌ | 关联 Issue 或 Breaking Changes |
🏷️ Type 类型
| Type | Emoji | 含义 | 示例 |
|---|---|---|---|
feat | ✨ | 新增功能 | feat(user): 新增用户注册接口 |
fix | 🐛 | 修复 Bug | fix(auth): 修复 token 过期计算错误 |
docs | 📚 | 文档变更 | docs(readme): 更新启动说明 |
style | 💎 | 代码格式(非 CSS) | style(user): 格式化代码 |
refactor | ♻️ | 代码重构 | refactor(common): 重构 Result 类 |
perf | 🚀 | 性能优化 | perf(db): 优化查询索引 |
test | 🧪 | 测试相关 | test(auth): 添加登录测试 |
chore | 🔧 | 构建/工具 | chore(deps): 升级 Spring Boot |
revert | ⏪ | 回退代码 | revert: 撤销用户删除功能 |
📋 示例
简单提交
feat(article): 新增文章发布功能
完整提交
fix(security): 修复 Swagger UI 登录拦截问题
Swagger UI 在未登录时被拦截重定向,导致无法查看文档。
解决方法:
1. 将 Swagger 路径加入白名单
2. 调整 SecurityConfig 过滤链顺序
Closes #123
💡 为什么这样做?
| 好处 | 说明 |
|---|---|
| 自动 Changelog | 工具可提取 feat/fix 生成发布日志 |
| 语义化版本 | fix → patch, feat → minor, BREAKING → major |
| 快速定位 | git log --grep=fix 快速找到所有 Bug 修复 |
🔧 推荐工具
- commitlint — 校验提交信息格式
- conventional-changelog — 自动生成 Changelog
- husky — Git hooks 管理