# 代码提交规范

# commit message 规范

借助 husky (opens new window),我们可以在 git hook 中定义事件,用于进行多种规范检测。

为了更好地管理项目的提交记录,目前通过 w6s-cli 创建的项目,已经具备检测 commit message 的功能,我们会检测提交代码时输入的commit message,使用的是@commitlint/config-conventional" (opens new window)规范。

基本写法:

type(scope?): subject  #scope is optional

type类型如下:

type 代表某次提交的类型,比如是修复一个 bug 或增加一个新的 feature。

  • feat 新增功能;
  • fix 修复 bug;
  • docs 仅仅修改了文档,比如 README, CHANGELOG, CONTRIBUTE 等等;
  • style 仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑;
  • refactor 代码重构,没有加新功能或者修复 bug;
  • perf 优化相关,比如提升性能、体验;
  • chore 改变构建流程、或者增加依赖库、工具等;
  • revert 回滚到上一个版本。

可选的 scope:

scope 表示一个范围,例如一个项目里面可能会同时包含多个入口,admin、mobile等,可以通过 scope 进行区分,如:

feat(admin): Add Excel import feature

subject:

尽可能简短地描述任务内容,并尽量使用中文。

# 提交频率

日常开发过程中,尽量保持提交的粒度为一个 feature 或修复一个 bug。

例如,你在一个小时内,修复了多个简单的 bug,那应该分多次提交,而且为了避免修复的 bug 可能存在于同一个代码文件,应修复后及时提交。

再者,如果一个 feature 需要开发多天,那至少保证每天提交或合并一次,避免代码差异增大。