前语

首先问问我们在日常工作中喜欢哪种commit提交?

git commit -m "代码更新"
git commit -m "处理公共款式问题"
git commit -m "feat: 新增微信自界说分享"

假如你是第三种,那我觉得你肯定了解过commit提交标准,可能是刷到过同类文章也可能是在工作中受到的要求

我自己是在刚出来实习的一家公司了解到的,依稀记得“冒号要用英文的,冒号后边要接空格…”

尽管我一向保持这种习惯去提交代码,但是后边遇到的同事大部分都是放飞自我的提交,看的我很难过

因而这篇文章就教还不会装备的小伙伴如何装备被业界广泛认可的Angular commit message 标准以及呼吁我们去运用。

先来了解下commit message的构成

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

对应的commit记录如下图

如果你的同事还不会配置commit提交规范,请把这篇文章甩给他

  • type: 必填 commit 类型,有业界常用的字段,也可以根据需要自己界说

    • feat 添加新功能
    • fix 修复问题/BUG
    • style 代码风格相关无影响运转成果的
    • perf 优化/功能提高
    • refactor 重构
    • revert 吊销修正
    • test 测试相关
    • docs 文档/注释
    • chore 依靠更新/脚手架装备修正等
    • workflow 工作流改善
    • ci 继续集成
    • types 类型界说文件更改
    • wip 开发中
    • undef 不确定的分类
  • scope: commit 影响的规模, 比方某某组件、某某页面

  • subject: 必填 简略的概述提交的代码,主张契合 50/72 formatting

  • body: commit 详细修正内容, 可以分为多行, 主张契合 50/72 formatting

  • footer: 其他补白, 包括 breaking changes 和 issues 两部分

git cz运用

只需要输入 git cz ,就能为我们生成标准代码的提交信息。

一、装置东西

npm install -g commitizen // 系统将弹出上述type、scope等来填写
npm install -g cz-conventional-changelog // 用来标准提交信息

ps:假如你是拉取他人现已装备好git cz的项目,记得也要在自己环境装置

然后将cz-conventional-changelog添加到package.json中

commitizen init cz-conventional-changelog --save --save-exact

如果你的同事还不会配置commit提交规范,请把这篇文章甩给他

二、运用git cz提交

装置完第一步的东西后,就可以运用git cz指令提交代码了

如果你的同事还不会配置commit提交规范,请把这篇文章甩给他

如果你的同事还不会配置commit提交规范,请把这篇文章甩给他

如图,输入完git cz指令后,系统将会弹出提交所需信息,只需要依次填写就可以

commitlint运用

假如你不想运用git cz指令去提交代码,仍是习惯git commit的方法去提交

那么接下来就教我们怎么在git commit指令或许vscode东西中相同标准的提交代码

一、装置东西

npm install --save-dev husky
npm install --save-dev @commitlint/cli
npm install --save-dev @commitlint/config-conventional

二、装备

  • 初始化husky
npx husky install
  • 添加hooks
npx husky add .husky/commit-msg 'npx --no -- commitlint --edit \$1'
  • 在项目根目录下创立commitlint.config.js,并装备如下
module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-case': [2, 'always', ['lower-case', 'upper-case']],
    'type-enum': [2, 'always',[
        'feat', // 添加新功能
        'fix', // 修复问题/BUG
        'style', // 代码风格相关无影响运转成果的
        'perf', // 优化/功能提高
        'refactor', // 重构
        'revert', // 吊销修正
        'test', // 测试相关
        'docs', // 文档/注释
        'chore', // 依靠更新/脚手架装备修正等
        'workflow', // 工作流改善
        'ci', // 继续集成
        'types', // 类型界说文件更改
        'wip', // 开发中
        'undef' // 不确定的分类
      ]
    ]
  }
}

三、验证

没装备前能直接提交

如果你的同事还不会配置commit提交规范,请把这篇文章甩给他

装备之后就会标准提交

如果你的同事还不会配置commit提交规范,请把这篇文章甩给他

总结

以上两种方法都很简单,几个过程下来就可以装备好,希望我们都能养成一个开发好习惯~