vue 项目git commit 规范限制

背景

不规范的 Git Commit 提交使得现有项目的 Git Log 杂乱无章,长此以往,当我们通过 Git Log 来code review 时分不清哪些是我们的新功能,哪些是修复的 bug,哪些是项目的体验优化等等。
所以我们就要为 commit 提供一个约束,使我们的提交信息更为规范,能够一目了然的知道我们这次提交的内容是什么类型的更改。

Commit Message 格式

Commit Message的格式为:<type>(<scope>): <subject>,其中
1、 type(必填):用来说明 commit 的类别

 * feat:新增功能
 * fix:bug 修复
 * docs:文档更新
 * style:不影响程序逻辑的代码修改(修改空白字符,格式缩进,补全缺失的分号等,没有改变代码逻辑)
 * refactor:重构代码(既没有新增功能,也没有修复 bug)
 * perf:性能, 体验优化
 * test:新增测试用例或是更新现有测试
 * build:主要目的是修改项目构建系统(例如 glup,webpack,rollup 的配置等)的提交
 * ci:主要目的是修改项目继续集成流程(例如 Travis,Jenkins,GitLab CI,Circle等)的提交
 * chore:不属于以上类型的其他类型,比如构建流程, 依赖管理
 * revert:回滚某个更早之前的提交

我们常用的也就

feat
fix
style
perf

2、scope(可选):用来说明 commit 影响的范围,比如数据层、视图层等,一般我基本不用
3、subject(必填):说明 commit 的目的描述

commitlint 工具

我们需要借助 commitlint 工具来帮我们检查我提交代码时写的 commit message 是否符合我们上述所说的规范
1、安装工具

npm install --save-dev @commitlint/config-conventional @commitlint/cli

2、项目根目录下创建配置文件

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

如果你要新增配置规则可以在后面追加在 rules: {} 中,关于具体的规则属性可以参考commitlint官网

Git Hooks

commitlint 本身只是一个检测工具,想要让它真正发挥作用需要将其与 git hooks 结合,当我们在使用git命令提交代码的时候能够检测我们的commit语法规则,从而阻止不合法的commit,push等。

vue-cli 创建的项目

在使用 vue脚手架 vue-cli 创建项目的时候,Vue 会自动帮我们做好一些配置,其中就有一个叫做 yorkie 的包,是尤大fork自 husky 的,做了一些小改动,他们的功能是一样的,都是生成一些 git hooks 文件,读取项目中 package.json 的相关配置项去执行一些命令。
如果你的项目也是通过 vue-cli 创建的 Vue 项目,只需要在你的 package.json 文件中加上

"gitHooks": {
	"commit-msg": "commitlint -E GIT_PARAMS"
}

其中 commit-msggit hooks(git 钩子)

husky

pre-commit hook

npx husky-init && npm install

项目中会自动生成文件夹 .husky,里面已经存在的 pre-commit 钩子

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

npm test // 修改或删除这里

这里在我们 git commit 时候会触发 pre-commit 这个钩子,执行里面的代码,所以需要将 npm test 修改成你有的 script 命令,比如我这里可以改成 npm run lint

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

npm run lint

会帮我们进行eslint检查,如果检查不通过会报错,因为我们的 package.json 中配置了 lint 语句
"lint": "vue-cli-service lint --no-fix"
如果希望检查的eslint错误自修复,需要写成
"lint": "vue-cli-service lint"
当然了,如果你什么都不想要做,也可以将 npm test 删除,什么都不写。

commit-msg hook

我们现在创建 commit-msg 钩子

npx husky add .husky/commit-msg

此时 .husky 文件下多了一个 commit-msg 文件,修改成

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

npx --no-install commitlint --edit "$1"

此时提交 git commit 就可以进行检查啦!

参考

Git Commit 团队规范限制

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值