前端优化之路:git commit 校验拦截

【前言】

前面在git分支规范那篇文章里,介绍了commit提交规范,如下图

但是想要做到高效落地执行,就需要做些别的功课,先展示下成果图

没错,对不符合规范的commit进行了拦截,符合才可以成功提交。

【前期准备】

需要了解git hooks,它是git的钩子,就像vue拥有自己的钩子一样

官方文档:https://git-scm.com/docs/githooks

本次优化中,只需要使用 commit-msg 钩子,它不仅可以实现 commit拦截,还能实现merge拦截

项目安装 husky,建议稳定版本4.3.8

npm install husky@4.3.8

【项目配置】

在项目package.json中,与scripts同级层配置钩子,npm run xxx,xxx为自定义的脚本执行命令

在scripts中配置脚本命令。xxx 为自定义的脚本名,会使node打开并执行指定目录下的js脚本文件,所以node后跟着的是自定义的脚本存放地址

【自定义脚本】

在上述脚本执行路径创建commit-msg.js,文件名自定义,对应上面的路径就行。

先引入fs工具包,不用安装,它是node的工具包。

自定义提交类型(type)

为了提示信息能够醒目,自定义颜色(如果无需醒目,这步可省略)

自定义基本提示语

获取commit相关对象

对三种情况进行校验,提示并拦截

另外,还可配置merge的拦截

到这里,就配置完成了,达到了预期效果

相关推荐
allnlei36 分钟前
优化大仓库项目中git的使用
git
芒克芒克43 分钟前
《Git分支实战:从创建到合并的全流程》
java·git
2501_916766541 小时前
【Git学习】Git本地仓库基础命令
git·学习
拽着尾巴的鱼儿2 小时前
工具篇:git compare with branch 分支版本回退
git
PMP_2 小时前
git 操作 (unable to update local ref) 错误
git
黑岚樱梦2 小时前
Git学习和Linux基础
git·学习
cc蒲公英14 小时前
idea git命令初次创建项目至远程
git
高兴就好(石15 小时前
git将远程的master分支的commit都拉取到本地
git
空空kkk17 小时前
Git版本控制(一)
git
毛豆的毛豆Y18 小时前
git 如何 fork 一个仓库的所有分支
git