Commitizen——标准化的Git commit工具


Commitizen——标准化的Git commit工具

前言

既然来到了这篇文章,不必我多说,你肯定是觉得Commit后的Message格式没有规范不利于促进开发

又或者是看到开源项目的 commit 格式好看 🌝

image-20221214162759978

为什么需要标准化的 Commit Message

对比一下下面两张图

开源项目 commitizen

开源项目 autoplan

可以很清楚的看出来,虽然一个是英文,一个是中文,但是依旧是英文的这个项目可以一眼看出来每次 commit 做了什么,而中文的需要看完一整句话

并且中文的这个项目,每次提交究竟是添加新特性,还是修复bug,也没有区分

所以如果有一个工具,能自动帮我们分类和规范格式,就可以促进开发效率

这个工具就是 Commitizen

Commitizen

Commitizen 分为两部分,脚手架(cz-cli)规范(Adapters)

脚手架可以帮助我们初始化和构建 Commitizen,而规范是开发者可以自定义的内容

官方默认提供的规范是 cz-conventional-changelog

同时,官方也提供了一些优秀的第三方规范,例如你肯定想要的表情包commit规范:cz-emoji-conventional

本文也将提供这两种规范的安装和使用方式

安装

一条命令搞定

npm install -g commitizen

这就安装成功了,而且是全局安装,以后再用就不用重复安装了

当然,安装成功的只是一个脚手架,现在还不能使用

创建 package.json

Commitizen 基于 nodejs,想要使用的话,在你的项目中自然需要一个 package.json

如果已经存在了那最好,没有的话,例如是一个 java 项目,那么你可以在项目根目录执行以下命令

npm init

当然,如果不是 nodejs 的项目,你肯定不需要将这些文件也上传到 git

你可以在 .gitignore 文件中加入下面几句来忽略这些文件

package-lock.json
package.json
node_modules/

初始化

这一步就可以选择我们需要的规范了

windows

commitizen init 规范名称 --save-dev --save-exact

linux

commitizen init 规范名称 --yarn --dev --exact

commitizen 脚手架会自动帮我们导入规范的依赖并进行下载,所以你只要注意不要写错规范名称就好了

关于这些名称,可以参考 这里推荐的规范

例如你想使用默认的规范

那么可以这样写:

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

而如果你想使用带表情包的,就这样写:

commitizen init cz-emoji-conventional --save-dev --save-exact

使用

使用的方式很简单,将你原本要输入的 git commit 命令替换为 git cz 即可

当你的控制台出现这样的界面,你可以使用方向键的 来移动光标选择这次 commit 的 type

按回车 enter 进行选择

常用的 type 有:

英文含义
feat新特性,新功能
fix修bug
docs更新文档
style修改代码风格、代码格式(不影响代码运行的变动)
refactor重构代码(既不是新增功能,也不是修改bug,可以理解为觉得原本写太烂了,重新写了一遍)
perf优化性能、优化体验
test测试
chore构建过程或者辅助工具的变动
revert回滚版本
merge代码合并
sync同步主线或分支

随后,根据提示输入相关信息即可

例如

  • scope 作用域,也就是这次变动影响的范围,例如数据层,控制层,或者单单某个类

  • subject / description 描述,cz 将描述分为简短描述和详细描述,使用几下就清楚了

除此以外,cz 还会提示你这次变动是否与某个 issue 有关等等

变更规范

上面是在初始化时选择的规范,如果在后期我们想要变更该怎么做?

首先,脚手架只有在初始化才能帮我们自动管理依赖

后期想要变动,就得手动下载依赖了

例如初始化时用的是官方默认的规范

那么这时候你的package.json里面会有这样一段代码

"config": {
    "commitizen": {
        "path": "node_modules/cz-conventional-changelog"
    }
}

我们如果想要换成有表情包的规范形式 cz-emoji-conventional

首先需要下载依赖,当然是要在项目根目录执行:

npm i cz-emoji-conventional

然后修改上面 package.json 中的配置

"config": {
    "commitizen": {
        "path": "node_modules/cz-emoji-conventional"
    }
}

到这里,规范就修改完成了

全局安装

上面所讲的安装方式仅适用于项目内,也就是每一个项目都会创建node_modules并安装依赖。

如果需要在电脑上任意地方都能用 git cz 命令,需要进行全局安装:

  1. 脚手架 npm install -g commitizen

  2. 选择一个规范,参考上文:npm install -g cz-emoji-conventional

  3. 在用户目录下创建文件 .czrc

    Windows:C:\user\用户名

    Linux: /home

  4. 编辑 .czrc 文件,写入规范名称:

    {
        "path": "cz-emoji-conventional"
    }

文章作者: ❤纱雾
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ❤纱雾 !
评论
  目录