概述

在使用git提交代码时,如果多人开发,为了保证提交到仓库的代码足够规范,所以需要进行一些配置来实现


commitizen:规范提交类型

在我们提交代码时,可能是做了不同类型的更改,比如提交新功能,或修改bug,又或者重构代码等,通过commitizen有助于我们直接选择类型提交。

Type作用
feat新增特性 (feature)
fix修复 Bug(bug fix)
docs修改文档 (documentation)
style代码格式修改(white-space, formatting, missing semi colons, etc)
refactor代码重构(refactor)
perf改善性能(A code change that improves performance)
test测试(when adding missing tests)
build变更项目构建或外部依赖(例如 scopes: webpack、gulp、npm 等)
ci更改持续集成软件的配置文件和 package 中的 scripts 命令,例如 scopes: Travis, Circle 等
chore变更构建流程或辅助工具(比如更改测试环境)
revert代码回退

安装

1.安装commitizen

npm install commitizen -D

2.安装cz-conventional-changelog,并且初始化cz-conventional-changelog:

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

这个命令会帮助我们安装cz-conventional-changelog:
image-20210723145249096
并且在package.json中进行配置:

这个时候我们提交代码可以使用 npx cz:,为了方便还可在package.json进行以下配置

配置

在package.json中配置脚本命令

"commit":"cz"

即可通过以下进行提交

npm run commit

husky:提交验证

现在虽然可以通过commitizen来进行提交了,但是还是可以通过git commit -m的形式来进行提交,且提交的代码可能不够规范,提交的信息也可能不包含提交类型,总之不够规范。
通过husky可以解决上述问题
husky是一个git hook工具,可以帮助我们触发git提交的各个阶段:pre-commit、commit-msg、pre-push

1.自动配置

npx husky-init ; npm install

这里会自动做三件事:

1.安装husky相关的依赖:
2.在项目目录下创建 .husky 文件夹:
3.在package.json中添加一个脚本:

2.提交前检查代码规范

步骤1后自动生成如下pre-commit文件
在这里插入图片描述
在这里插入图片描述
也就是在提交前会执行npm test,所以我们改成我们想要的提交前验证代码规范即可
在这里插入图片描述
这样在提交代码时,如果没有符合eslint规范,它会先调整规范再进行提交

3. 提交时验证提交信息

由于我们还可以git commit -m msg的形式提交,但是msg可能不符合我们想要的类型规范,如 feat:xxxxx、fix:xxxxx
所以可以通过配置commit-msg、commitlint

1.安装 @commitlint/config-conventional 和 @commitlint/cli

npm i @commitlint/config-conventional @commitlint/cli -D

2.在根目录创建commitlint.config.js文件,配置commitlint

module.exports = {
  extends: ['@commitlint/config-conventional']
}

3.使用husky生成commit-msg文件,验证提交信息

npx husky add .husky/commit-msg

4.生成的commit-msg文件中配置

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx --no-install commitlint --edit

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐