规范的核心目标:降低协作成本、提高代码可追溯性、版本管理

一、分支规范

分支类型分支名称格式作用说明生命周期合并目标
主分支main(或 master存放主要代码,禁止直接提交代码永久仅接收 dev 合并
开发者分支dev/xxx开发分支,xxx为开发者名称永久合并到 main

二、提交日志规范

提交日志格式统一为:类型(范围可选): 描述信息,核心是「结构化、一眼看懂提交目的」。

1. 基本格式

bash
<type>(<scope>): <description>

2. 核心类型(type)

类型适用场景示例
feat新增功能(如新增接口、页面、功能模块)feat(user): 新增用户注册接口
fix修复bug(生产/开发环境的功能异常)fix(order): 修复订单支付状态同步问题
docs仅修改文档(如README、注释、接口文档),不涉及代码逻辑docs: 更新API文档参数说明
style代码格式调整(如缩进、空格、命名规范),不改变代码逻辑style: 统一变量命名为小驼峰
refactor代码重构(既不新增功能,也不修复bug,如优化逻辑、提取公共方法)refactor(utils): 提取日期格式化工具
perf性能优化(如减少接口耗时、降低内存占用)perf: 优化列表查询SQL,耗时从500ms→50ms
test新增/修改测试代码(如单元测试、集成测试)test(user): 补充用户登录单元测试
chore构建/工具类操作(如依赖更新、配置修改、脚本调整)chore: 更新npm依赖到最新版本

3. 范围(scope)可选

用于指定提交影响的模块,如 user(用户模块)、order(订单模块)、payment(支付模块)、config(配置)等,无明确模块可省略。

4. 描述信息(description)要求

  • 首字母小写,结尾不加句号;
  • 简洁明了(10字以内最佳),直接说明「做了什么」;
  • 避免模糊表述(如「修改了一些问题」「优化代码」)。

5. 完整示例

bash
# 有范围+详细说明
feat(order): 新增订单批量导出功能

# 无范围+简单描述
fix: 修复移动端适配错位问题

# 重构+性能优化
refactor(utils): 重构字符串处理工具,提升执行效率

三、配套工具(可选)

  1. 提交规范校验:使用 commitlint + husky,强制提交日志符合格式,避免不规范提交;
  2. 自动生成日志:使用 standard-versionrelease-it,根据提交日志自动生成 CHANGELOG.md,无需手动编写;
  3. 分支保护:在GitLab/GitHub中设置 main/develop 分支保护,禁止直接推送、强制推送,必须通过MR/PR合并。