欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript开发过程中规范commit msg意义详解

程序员文章站 2023-12-29 20:21:34
目录规范 commit msg 的意义commitizencommitlint安装依赖添加 .commitlint.config.js 文件配置 git hooks总结一下:step 1: 安装依赖s...

规范 commit msg 的意义

规范化、格式化的 commit message 可以让我们更好的追踪需求的演进、回滚时能够快速的找到提交、最次也能让我们的仓库显的更专业。

团队如何规范 commit msg呢,靠宣讲、靠文档?当然得靠工具生成和约束。前端圈*那么多,这种工具不在话下。

  • commitizen 问答式生成 commit msg 格式化
  • commitlint 校验卡控 commit msg 规范化

commitizen

commitizen: simple commit conventions for internet citizens.

commitizen/cz-cli 借助它提供的 git cz 命令替代 git commit 命令,生成符合规范的 commit message。

commitizen 默认的提交规范是 angular 团队强规定的,若想自定义我们还需配合 adapter(适配器)此处我们用cz-customizable

下面我们直接来介绍项目级配置。

进行 commitizen 配置

执行 npm install -d commitizen、npm install -d cz-customizable命令

然后在 package.json文件中 scripts 和 config 字段进行配置

{
  "scripts": {
    "commit": "cz"
  },
  "config": {
    "commitizen": {
      "path": "./node_modules/cz-customizable"
    },
    "cz-customizable": {
      "config": ".cz-configrc.js"
    }
  }
}

添加 .cz-configrc.js文件

在项目的根目录下执行 npm run commit试试吧

后续t npm run commit 替换 git commit

commitlint

如何保证组内成员都使用npm run commit命令呢?当然是用工具。

这里我们用 commitlint,作用和 eslint 类似。利用 git hooks 拦截不符合规范的 commit msg。

安装依赖

npm install --save-dev @commitlint/{config-conventional,cli} 
npm install yorkie --save-dev

添加 .commitlint.config.js 文件

扩展开源配置,然后再添加部分个性化 rules

配置 git hooks

为了拦截不规范的 commit msg,需要利用 git hooks 的 commit-msg 自动执行 commitlint

"githooks": {
  "commit-msg": "commitlint -e $git_params"
}

乱输入一个 commit msg 试试,发现非常神奇。卡控生效了。

按照以上步骤就可以规范你们团队的 commit msg了。

总结一下:

step 1: 安装依赖

npm install -d commitizen cz-customizable
npm install -d @commitlint/{config-conventional,cli}
npm install -d yorkie 

step 2: 添加配置文件

自定义格式的commitizen配置文件 .cz-configrc.js ,校验规范的 .commitlint.config.js 文件

配置 package.json

{
  "scripts": {
    "commit": "cz"
  },
  "config": {
    "commitizen": {
      "path": "./node_modules/cz-customizable"
    },
    "cz-customizable": {
      "config": ".cz-configrc.js"
    }
  },
  "githooks": {
    "commit-msg": "commitlint -e $git_params"
  }
}

git cz 的原理

如果你是全局按照的 commitizen,你还能用 git cz命令代替 npm run commit

git cz 是什么玩意? git 的命令,还 commitizen 的命令。

通过查阅资料 git cz 是 commitizen 利用 git 的文件命名规范生成的自定义 git 命令。

git遵循命名约定git-<subcmd>自动解析path中可执行文件中的子命令。 这些子命令可以用git <subcmd>执行。

我们看下 commitizen 仓库 package.json 的 bin 字段。真香大白了,就是 git 的自定义命令

 "bin": {
    "cz": "./bin/git-cz",
    "git-cz": "./bin/git-cz",
    "commitizen": "./bin/commitizen"
  },

以上就是javascript开发过程中规范commit msg意义详解的详细内容,更多关于开发规范commit msg意义的资料请关注其它相关文章!

上一篇:

下一篇: