准备工作

首先安装node.js,已安装的,可以忽略此步骤


brew install node

正式安装

  1. 安装 Commitizen
npm install -g commitizen
  1. 安装 changelog
npm install -g conventional-changelog conventional-changelog-cli
  1. 检测是否安装成功
npm ls -g -depth=0
  1. 得到下面的类似结果,就成功了
/usr/local/lib
├── commitizen@2.9.6
├── conventional-changelog@1.1.7
├── conventional-changelog-cli@1.3.5
└── npm@5.5.1
  1. 进入你想要使用 git cz 命令的git项目根目录,执行以下命令
npm init --yes

应该会多出一个node_modules文件夹,和package.json文件,package.json就是

  1. 在项目目录执行以下命令
1
commitizen init cz-conventional-changelog --save --save-exact

可能要加–froce强制覆盖

  1. 现在就可以使用 git cz 代替 git commit 来生成专业的commit了。
    目前所有提示都是英文的。

使用效果图

汉化

  1. 安装cz-customizable
npm install cz-customizable --save-dev
  1. 再进入项目目录,用cz-customizable初始化一下
commitizen init cz-customizable --save --save-exact
  1. 修改node_modules/cz-customizable文件夹里的.cz-config.js,将内容替换成中文。
'use strict';

module.exports = {

  types: [
    {value: '特性',     name: '特性:    一个新的特性'},
    {value: '修复',      name: '修复:    修复一个Bug'},
    {value: '文档',     name: '文档:    变更的只有文档'},
    {value: '格式',    name: '格式:    空格, 分号等格式修复'},
    {value: '重构', name: '重构:    代码重构,注意和特性、修复区分开'},
    {value: '性能',     name: '性能:    提升性能'},
    {value: '测试',     name: '测试:    添加一个测试'},
    {value: '工具',    name: '工具:    开发工具变动(构建、脚手架工具等)'},
    {value: '回滚',   name: '回滚:    代码回退'}
  ],

  scopes: [
    {name: '模块1'},
    {name: '模块2'},
    {name: '模块3'},
    {name: '模块4'}
  ],

  // it needs to match the value for field type. Eg.: 'fix'
  /*
  scopeOverrides: {
    fix: [
      {name: 'merge'},
      {name: 'style'},
      {name: 'e2eTest'},
      {name: 'unitTest'}
    ]
  },
  */
  // override the messages, defaults are as follows
  messages: {
    type: '选择一种你的提交类型:',
    scope: '选择一个scope (可选):',
    // used if allowCustomScopes is true
    customScope: 'Denote the SCOPE of this change:',
    subject: '短说明:\n',
    body: '长说明,使用"|"换行(可选):\n',
    breaking: '非兼容性说明 (可选):\n',
    footer: '关联关闭的issue,例如:#31, #34(可选):\n',
    confirmCommit: '确定提交说明?'
  },

  allowCustomScopes: true,
  allowBreakingChanges: ['特性', '修复'],

  // limit subject length
  subjectLimit: 100

};
  1. 最后,修改package.json,如下配置路径,如果使用git cz报错,大概率是绿框中路径有问题
	"config": {
		"commitizen": {
			"path": "./node_modules/cz-customizable"
	},
		"cz-customizable": {
			"config": "./node_modules/cz-customizable/.cz-config.js"
	}

最终效果