跳转至

Commit Specification

  • feat
  • fix
    • 因没注意到目标某些情况而修改代码(漏考虑场景),视为bug
  • refactor
    • 因目标规则变化而修改,如果因此添加了功能,则用feat
  • pref
  • chore:构建过程或辅助工具的变动
    • 如.gitignore、仅文件位置变动、ide配置、与业务代码无关的脚本
  • style:代码风格、格式化
  • test
  • docs:文档、代码注释
  • ci:CI 工具
  • build
    • 运行、编译脚本
  • deps
    • 当可以分开提交依赖和功能实现时,选择先deps提交依赖变更
  • 配置文件的修改:根据情况而选择适合的规范

以下是为全栈程序员设计的详细 Git Commit 提交规范模板,涵盖前端、后端、数据库、DevOps 等多领域,按技术维度分类:


一、基础规范模板

<type>(<scope>): <subject>  # 标题行(必填)
<BLANK LINE>                # 空行分隔
<body>                      # 详细说明(选填)
<BLANK LINE>
<footer>                    # 关联问题/破坏性变更(选填)

二、全栈分类提交示例

1. 前端相关
类型 作用域 示例
feat(ui) 新增界面组件 feat(ui): 添加用户资料卡片组件
fix(css) 样式修复 fix(css): 修正移动端导航栏错位问题
refactor(react) 重构逻辑 refactor(react): 使用 Context API 重构全局状态管理
perf(animation) 性能优化 perf(animation): 使用 CSS will-change 优化转场性能
2. 后端相关
类型 作用域 示例
feat(api) API 接口新增 feat(api): 新增 /users/search 搜索接口
fix(auth) 认证修复 fix(auth): 修复 JWT 令牌刷新逻辑漏洞
docs(swagger) API文档更新 docs(swagger): 添加订单创建接口的请求示例
test(middleware) 中间件测试 test(middleware): 添加速率限制中间件的单元测试
3. 数据库相关
类型 作用域 示例
migration 数据迁移 migration: 新增产品价格历史表 (UP: 202403010823)
fix(query) 查询优化 fix(query): 优化用户分页查询的索引使用
feat(redis) 缓存新增 feat(redis): 为商品详情添加 LRU 缓存策略
4. 全栈交叉
类型 作用域 示例
feat(fullstack) 端到端功能 feat(fullstack): 实现购物车同步功能(前端+API+缓存)
refactor(types) 类型定义 refactor(types): 统一前后端用户数据模型 (UserDTO)
5. DevOps 相关
类型 作用域 示例
ci(pipeline) CI流程更新 ci(pipeline): 添加多阶段 Docker 构建流程
chore(env) 环境配置 chore(env): 更新 .env.example 添加 SMS 配置项

三、完整提交示例

示例1:功能开发
feat(checkout): 实现三合一支付功能(微信+支付宝+银联)

- 前端添加支付方式选择组件
- 新增 /api/v2/payment 聚合支付接口
- 添加支付流水表 migration
- 更新 Swagger 文档

Closes \#235
Related to \#112
示例2:紧急修复
fix(security)!: 紧急修复 SQL 注入漏洞

- 使用参数化查询重构用户搜索接口
- 添加 SQL 注入测试用例
- 更新 ORM 配置强制使用预处理

BREAKING CHANGE: 废弃旧版 /search 接口
示例3:跨团队协作
refactor(analytics): 整合第三方埋点系统 [与数据团队协作]

- 前端添加 GTM 事件跟踪
- 后端添加 Kafka 埋点生产者
- 更新 docker-compose 添加 Kafka 服务

Co-authored-by: li.ruohang <li.ruohang@partner.com>

四、特殊场景处理

1. 大规模重构
refactor(architecture): 迁移至微服务架构

前端:
- 拆分为独立订单模块
- 使用 Module Federation 实现动态加载

后端:
- 分解用户服务为独立模块
- 添加 gRPC 通信层

BREAKING CHANGES:
- 需要更新 API Gateway 配置
- 数据库连接池配置变更
2. 多技术栈更新
chore(stack): 升级技术栈版本

- Node.js 18 → 20
- React 17 → 18 (启用并发模式)
- Spring Boot 2.7 → 3.2
- MySQL 5.7 → 8.0

Migration Guide:
1. 更新 JDK 到 17+
2. 运行 `npm ci --legacy-peer-deps`
3. 实验性功能
feat(ai): 实验性接入 GPT-4 客服 [WIP]

- 添加 /api/ai-chat 接口
- 前端实现聊天界面原型
- 添加限流熔断机制

TODO:
- [ ] 敏感词过滤
- [ ] 对话历史持久化

五、提交规范检查工具

1. Commitlint 配置示例
{
  "extends": ["@commitlint/config-conventional"],
  "rules": {
    "scope-enum": [2, "always", [
      "ui", "api", "db", "auth", "ci", 
      "docker", "migration", "fullstack"
    ]],
    "body-max-line-length": [0],
    "footer-max-line-length": [0]
  }
}
2. 预提交钩子示例 (.husky/commit-msg)
\#!/bin/sh
npx commitlint --edit "$1"

通过这种结构化提交规范,可以:
1. 自动生成技术维度清晰的 CHANGELOG
2. 提高跨模块代码审查效率
3. 精准定位技术债务
4. 支持多环境部署的版本追溯

建议根据团队技术栈特点调整作用域枚举列表,保持 15-20 个核心作用域为佳。