likes
comments
collection
share

[Git] 使用Commitizen规范git commit信息

作者站长头像
站长
· 阅读数 4

规范化的commit信息不仅仅在阅读时赏心悦目,也能大大提升代码的可维护性。

一、全局安装 commitizen

npm i commitizen -g

二、项目中安装适配器 cz-customizable

npm i cz-customizable --save-dev

三、适配器配置

commitizen init cz-customizable --save --save-exact

四、自定义交互提示

默认的交互信息是英文的,可以通过.cz-config.js文件自定义交互内容

// 在项目根目录添加文件 .cz-config.js
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:    打包' },
  ],
  // override the messages, defaults are as follows
  messages: {
    type: '请选择提交类型:',
    // scope: '请输入文件修改范围(可选):',
    // used if allowCustomScopes is true
    customScope: '请输入修改范围(可选):',
    subject: '请简要描述提交(必填):',
    body: '请输入详细描述(可选,待优化去除,跳过即可):',
    // breaking: 'List any BREAKING CHANGES (optional):\n',
    footer: '请输入要关闭的issue(待优化去除,跳过即可):',
    confirmCommit: '确认使用以上信息提交?(y/n/e/h)',
  },
  allowCustomScopes: true,
  // allowBreakingChanges: ['feat', 'fix'],
  skipQuestions: ['body', 'footer'],
  // limit subject length, commitlint默认是72
  subjectLimit: 72,
}

五、使用git cz命令代替git commit

[Git] 使用Commitizen规范git commit信息