fat-cat

Commit Message 规范

如何优雅的开发(针对同一 feature,非通用流程,此模块主要目的是讲解怎么将多个 commit 合成一个)

项目开发 owner 会把项目分支划分为 master,dev,test 和 preprod,这 4 个基础分支,只有 owner 可以直接进行代码操作,其他开发者,需以 mr 的方式来合到对应的分支上,更新代码

项目开发 owner 会根据功能需求基于 dev 新建功能分支 fe 和 bugfix 分支 fix,这个两种类型的分支可以直接进行代码操作的权限可由 owner 根据实际情况决定

开始开发(单人开发)

本地分支可以 checkout 到 fe/xxx 直接开发 更新远程代码,可以按照 「多人协作开发之更新本地代码」 的方式更新,也可以直接使用 git pull 更新代码 然后按照流程去创建 mr 即可,创建 mr 的时候,有可能出现 dev 分支有新的更新,fe/xxx 落后了,即需要按照 「多人协作开发之更新本地代码」的方式更新,但注意的是此时的 rebase 的远程分支为 dev 了

开始开发(多人协作开发)

本地新建自己的功能分支,举个栗子:/xxx,命名规则:{开发者名字拼音缩写}/xxx 一顿操作后,要提交代码了 本地提交 commit,commit message 请按「如何提交规范的 commit message」的规范书写

如何提交规范的 commit message

基于 commitlint 所定的规则统一 commit message

通用 commit message 表达式:

type(optional scopes): [optional taskId] subject // tips: 注意空格

部分场景举个栗子:

场景说明 Commit Message 英文举例 Commit Message 中文举例 备注

Type 使用场景

type 使用解释
feat 增加新功能
fix 修复 bug
chore 其他修改,比如增加依赖库、工具 或者 一些业务逻辑的调整等
merge 多用于版本跨度较大时,手动触发 git merge,解决冲突后的提交,必要时需要注明影响范围
style 代码格式修改,注意不是 css 样式的修改
docs 文档修改
ci 持续集成修改
build 编译相关的修改,例如发布版本、对项目构建或者依赖的改动
perf 优化相关,比如提升性能、体验等
refactor 代码重构
revert 撤销某次提交,回滚到某个版本
test 测试用例

commitlint.config.js 通用配置

module.exports = {
    extends: ['@commitlint/config-conventional'],
    rules: {
    'type-enum': [
        2,
        'always',
        [
            'feat',
            'fix',
            'chore',
            'merge',
            'style',
            'docs',
            'ci',
            'build',
            'perf',
            'refactor',
            'revert',
            'test',
        ],
        ],
            'header-max-length': [2, 'always', 150],
        },
}