commitizen规范代码提交信息

90 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第26天,点击查看活动详情

前言

在使用git管理项目代码时,由于不同的模块需要不同的程序员去编写提交,这就导致在提交代码执行git commit -m '描述信息'时,通常会有五花八门的描述信息,当其他人了解提交信息时不一定能理解,所以可不可以能对提交的信息进行规范化格式?目前已经提出了约定式提交这个概念。有需求的同时就会出现工具,我们可以使用git提交规范化工具commitizen去解决代码提交规范的问题。

规范化提交代码

安装commitizen

npm install -g commitizen@4.2.4

还需要安装插件cz-customizable

npm i cz-customizable@6.3.0 --save-dev

package.json中配置

···
"config": {
    "commitizen": {
      "path": "node_modules/cz-customizable"
    }
}
···

接着在根目录下新建配置文件.cz-config.js,其中需要完善以下配置项

  1. types: 可选类型
  2. messages: 消息步骤
  3. skipQuestions: 跳过的问题
  4. ···
module.exports = {
  // 可选类型
  types: [
    { value: 'feat', name: 'feat:     新功能' },
    { value: 'fix', name: 'fix:      修复' },
    { value: 'docs', name: 'docs:     文档变更' },
    { value: 'style', name: 'style:    代码格式(不影响代码运行的变动)' },
    {
      value: 'refactor',
      name: 'refactor: 重构(既不是增加feature,也不是修复bug)'
    },
    { value: 'perf', name: 'perf:     性能优化' },
    { value: 'test', name: 'test:     增加测试' },
    { value: 'chore', name: 'chore:    构建过程或辅助工具的变动' },
    { value: 'revert', name: 'revert:   回退' },
    { value: 'build', name: 'build:    打包' }
  ],
  // 消息步骤
  messages: {
    type: '请选择提交类型:',
    customScope: '请输入修改范围(可选):',
    subject: '请简要描述提交(必填):',
    body: '请输入详细描述(可选):',
    footer: '请输入要关闭的issue(可选):',
    confirmCommit: '确认使用以上信息提交?(y/n/e/h)'
  },
  // 跳过问题
  skipQuestions: ['body', 'footer'],
  // subject文字长度默认是72
  subjectLimit: 72
}

当提交代码时,使用git cz替代git commit -m '描述信息',会按照messages配置项中的顺序一个一个执行

选择类型type,选项对应types配置项中的配置

1.png

输入修改范围customScope

2.png

直到最后确认是否提交完成后,推送到仓库即可。注意配置在skipQuestions中的项不会执行而是直接跳过

最终效果如下

3.png