Commitizen使用指南

2,039 阅读2分钟

 因为团队需要,最近在研究git commit message规范相关的东西。规范基本都是用的Angular规范这一套,比较明确。为了更有效地执行这些规范,也在找配套的工具。Commitizen就是配套的工具之一。它可以帮助我们更有效、更方便地写出规范的commit message。

使用Commitizen效果

commit.gif

 通过这个gif中完成一次提交的过程,我们可以感受到Commitizen的便捷。完成一次提交只需要几次和命令行的交互。下面讲如何安装、使用它。安装方式有两种:单个项目安装全局安装

单个项目安装Commitizen

 首先通过npm install --save-dev commitizen来安装Commitizen。

 下一步是初始化Commitizen配套的适配器,如果你的npm版本在5.2以上,那么你可以使用npx来初始化:

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

 对于5.2之前版本的npm,可以通过以下命令来初始化:

./node_modules/.bin/commitizen init cz-conventional-changelog --save-dev --save-exact

 或者:

./node_modules/.bin/cz init cz-conventional-changelog --save-dev --save-exact

 完成这两步后,在项目下运行git cz就可以出现开头的效果。至此,单个项目下安装Commitizen基本已经完成了。下面是一些让你的Commitizen更强大的配置:

在package.json添加npm script

{
  ...
  "script": {
    "cm: "cz"
  }
}

 这样,对于项目的其他开发者来说,如果他们想通过Commitizen完成一次提交,只需要运行npm run cm就可以了。

git commit上运行Commitizen

 这里,我们将展示如何使用git hooks和--hook命令行参数将Commitizen合并到现有的git commit工作流中。

注意:这里我们假设你的项目已经完成了“单个项目安装”中基本的两步。

Husky

 对于husky用户,在package.json中添加下列配置:

"husky": {
  "hooks": {
    "prepare-commit-msg": "exec < /dev/tty && npx cz --hook || true"
  }
}

全局安装Commitizen

 首先,全局安装Commitizen:

npm install -g commitizen

 然后,全局安装你喜欢的适配器,比如cz-conventional-changelog

npm install -g cz-conventional-changelog

 如果你是mac用户,运行下面这条命令,它会在你的home目录下,创建一个.czrc文件。路径指向刚才全局安装的适配器。

echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc

 如果你是windows用户,请把下面这条命令中的C:\Users\12105更换成你自己电脑上的\Users\username目录再运行。这条命令的本质其实就是在Users\username目录下创建一个内容为{ "path": "cz-conventional-changelog" }.czrc文件。

echo { "path": "cz-conventional-changelog" } > C:\Users\12105\.czrc

 至此,你已经完成了Commitizen的全局安装!你可以在任何一个git仓库中使用git cz,而不是git commit。  另外,你可以在git cz上使用git commit的所有参数,比如git cz -a。  如果项目和全局都安装过Commitizen,那么会使用项目中的Commitizen适配器,而不是全局的。

本篇内容主要是对Commitizen\README.md的翻译和整理。原文请见:commitizen\cz-cli

 如果本篇内容对你有帮助,麻烦点个赞~