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

简介: 前面在git分支规范那篇文章里,介绍了commit提交规范,但是想要做到高效落地执行,就需要做些别的功课。

【前言】

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

1821793-20231207104109626-907813171.png

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

1821793-20231207104131623-776421334.png

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

【前期准备】

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

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

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

1821793-20231207104504032-1406238908.png

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

【项目配置】

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

1821793-20231207104619730-606860797.png

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

1821793-20231207104631523-1822102165.png

【自定义脚本】

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

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

1821793-20231207104700819-1165442668.png

自定义提交类型(type)

1821793-20231207104725384-1950751329.png

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

1821793-20231207104742022-1723101296.png

自定义基本提示语

1821793-20231207104755969-1290638451.png

获取commit相关对象

1821793-20231207104809208-606733170.png

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

1821793-20231207104825147-1421981631.png

另外,还可配置merge的拦截

1821793-20231207104840741-274418618.png

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

相关文章
|
29天前
|
前端开发 持续交付 开发工具
理解前端开发中的 Git - Rebase
Git Rebase 是前端开发中常用的一种版本控制操作,用于将一个分支的更改整合到另一个分支。与合并(Merge)不同,Rebase 可以使提交历史更加线性整洁,有助于保持代码库的清晰和可维护性。通过 Rebase,开发者可以将特性分支的改动应用到主分支上,同时保留或重写提交记录。
|
2月前
|
前端开发 开发工具 git
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
38 5
|
3月前
|
开发工具 git
GIT:如何合并已commit的信息并进行push操作
通过上述步骤,您可以有效地合并已提交的信息,并保持项目的提交历史整洁。记得在执行这些操作之前备份当前工作状态,以防万一。这样的做法不仅有助于项目维护,也能提升团队协作的效率。
164 4
|
3月前
|
开发工具 git
GIT:如何合并已commit的信息并进行push操作
通过上述步骤,您可以有效地合并已提交的信息,并保持项目的提交历史整洁。记得在执行这些操作之前备份当前工作状态,以防万一。这样的做法不仅有助于项目维护,也能提升团队协作的效率。
282 3
|
2月前
|
前端开发 开发工具 git
搭建Registry&Harbor私有仓库、Dockerfile(八)+前端一些好学好用的代码规范-git hook+husky + commitlint
搭建Registry&Harbor私有仓库、Dockerfile(八)+前端一些好学好用的代码规范-git hook+husky + commitlint
22 0
|
4月前
|
前端开发 JavaScript 数据安全/隐私保护
前端JS正则校验密码之3种实现方式
这篇文章展示了三种使用JavaScript正则表达式来校验密码的方法,密码需要满足包含大写字母、小写字母、数字及特殊字符,并在8到16位之间,同时提供了示例代码和实现效果。
157 1
前端JS正则校验密码之3种实现方式
|
4月前
|
JavaScript IDE 前端开发
前端开发工具配置 nodejs & git & IDE
前端开发工具配置 nodejs & git & IDE
|
4月前
|
存储 前端开发 开发工具
前端常用的git操作
【8月更文挑战第24天】前端常用的git操作
31 1
|
4月前
|
开发工具 git
Git——commit的提交规范
Git——commit的提交规范
115 4
|
4月前
|
测试技术 持续交付 开发工具
[译] 为何每次 Git Commit 要尽可能小?
[译] 为何每次 Git Commit 要尽可能小?
下一篇
DataWorks