Git 提交代码规范指南

Git 提交代码规范指南 一、主流规范Conventional Commits最广泛使用的标准是Conventional Commits它让提交历史清晰可读并支持自动化生成 CHANGELOG。基本格式type(scope): subject body footer二、各字段说明1.type必填提交类型类型含义示例feat新功能featurefeat(user): 添加用户登录功能fix修复 bugfix(api): 修复空指针异常docs文档更新docs(readme): 更新部署说明style代码格式调整不影响逻辑style(css): 统一缩进格式refactor重构代码refactor(service): 优化订单查询逻辑perf性能优化perf(db): 添加索引提升查询速度test测试相关test(unit): 补充用户模块单元测试chore构建/工具/依赖变动chore(deps): 升级 spring-boot 至 3.2ciCI/CD 配置变更ci(github): 添加自动部署流程revert回滚提交revert: 回滚 feat(auth) 的 OAuth 改动2.scope可选影响范围标记修改涉及的模块、组件或文件路径用括号包裹。feat(auth): 添加 JWT 鉴权 fix(api/user): 修复用户信息接口 docs(README): 补充环境变量说明3.subject必填简短描述不超过50 个字符使用祈使句现在时开头不要大写末尾不加句号清晰表达做了什么而非怎么做✅ 正确feat(cart): 添加购物车数量校验❌ 错误feat(cart): Added the cart quantity validation.4.body可选详细说明空一行后书写说明为什么修改、与之前行为的对比、注意事项每行不超过 72 个字符fix(payment): 修复微信支付回调超时问题 此前未设置 socket 超时时间导致网络波动时连接挂起。 现添加 30 秒读写超时并在超时后触发重试机制。 Closes #2345.footer可选元信息BREAKING CHANGE: 不兼容变更说明Closes/Fixes/Refs: 关联 Issue 或 PRBREAKING CHANGE: 移除对 Node.js 14 的支持最低版本要求 16 Fixes #456三、完整示例feat(notification): 集成钉钉消息推送 - 支持文本、链接、Markdown 三种消息类型 - 配置项支持多环境切换dev/prod - 默认关闭需在 application.yml 手动开启 Closes #89refactor(order): 拆分订单服务为读写分离架构 将订单查询与写入拆分为独立服务降低数据库锁竞争。 查询服务支持只读副本写入服务保证事务一致性。 BREAKING CHANGE: 订单查询 API 路径变更 旧/api/v1/orders 新/api/v2/orders Refs #112, #113四、进阶实践建议1. 提交粒度原则一个提交只做一件事不要把功能开发和 bug 修复混在一起提交要可编译、可运行不要提交半成品代码2. 分支命名配合feature/user-auth # 功能分支 fix/memory-leak # 修复分支 hotfix/payment-crash # 紧急修复 release/v2.3.0 # 发布分支3. 工具辅助Commitizen交互式生成规范提交信息Husky commitlint提交前自动校验格式standard-version / semantic-release自动生成版本号和 CHANGELOG4. 团队配置示例.commitlintrc{ extends: [commitlint/config-conventional], rules: { type-enum: [2, always, [feat,fix,docs,style,refactor,test,chore,perf,ci,revert]], subject-max-length: [2, always, 50] } }五、快速对照表场景推荐写法新增接口feat(api): 添加用户列表分页查询修线上 bugfix(order): 修复订单金额计算精度丢失改配置文件chore(config): 调整日志输出级别补测试用例test(payment): 补充退款流程异常场景测试代码格式化style(all): 统一使用 2 空格缩进性能优化perf(cache): 引入 Caffeine 本地缓存遵循这些规范后你的git log将变得像结构化的变更日志极大提升团队协作效率和代码可维护性。