# 代码提交规范

为了规范代码提交记录,自动生成 changelog,使用 cz-customizable 对代码提交进行规范。

# 写在前面

为了保证自动生成的 changelog 尽量有效,请遵循以下几个原则:

  • 提交代码要谨慎,featfix 会自动生成 changelog,其他标识不会,因此选择 featfix 时要考虑是否是新增功能或者修复缺陷。
  • 提交代码要仔细,scpoe 请选择对应的控件,不要错选或者选择 empty/custom 等默认 scope,默认 scope 只有特殊情况下使用。
  • 提交代码要完整,保证一条提交记录搞定一个 feat 或修复一个 bug,一个功能完成度不够时不要提交,尽量不要出现一个功能多条提交记录的情况。
  • 提交记录要具体,对新增功能和修复的缺陷进行具体描述,不要仅说明修改某个控件的问题。
    • 错误例子:修复密码输入框缺陷
    • 正确例子:修复密码输入框密码强度无法正确显示的缺陷。
  • 提交代码要充分测试,控件要保证基本完成的情况下,在本地进行充分测试后提交,不要引入新的问题。

# 安装依赖

npm install -g conventional-changelog commitizen

从现在开始可以运行 git cz 指令。

# 提交流程

cz 流程:git add => git cz => git push

使用 git cz 来完全替代 git commit 进行代码提交。

# 1. 提交标识

选择一个标识表明提交代码的类型。

所有标识:

标识 描述
feat 新增一个功能
fix 修复一个 Bug
docs 文档变更(更新文档、Demo)
ci 发布控件版本
style 代码风格变更(不影响功能,解决代码冲突、eslint 校验修改等)
refactor 重构(即不是新增功能,也不是修改bug的代码变动)
chore 开发工具变动(框架改动、eslint规则变动等)
test 新增测试
perf 改善性能
revert 代码回退(如果当前 commit 用于撤销以前的 commit)

# 2. 选择 scope

根据提交的代码类型,选择对应的 scope。

feat 或者 fix 现在必须选择具体控件,不要选择 empty/custom 等默认 scope,否则请考虑选择其他标识,若没有 scope,请在 .cz-config.js 中添加。

# 3. 简短的描述

必填,对此次提交进行一个简短的描述。

# 4. 详细的描述(选填)

选填,若简短描述无法达到要求,可以书写详细描述,通过 | 来进行换行。

# 5. Breaking Change(选填)

选填,若提交中涉及到 Breaking Change,请务必填写。

# 6. 关联 issues(选填)

选填,若有对应的 issues,请进行关联,可以逗号分隔以关联多个 issues。