husky结合commitlint审查commit信息

commintlint是一个npm包用来规范化我们的commit信息,当然这个行为的操作时期是在git的commit-msg生命周期期间,这一点当然是有husky来控制,需要注意的是commit-msg作为一个git生命周期会被git commit和git merge行为唤醒,并且可以通过git命令后缀跳过这一生命周期

一、准备工作

1.下载一下commitlint

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

 这个命令下载了两个东西,@commitlint/cli实际上是commintlint的别名,就是包的本体,@commitlint/config-convebtional实际上是默认的配置,后面会在配置表中extend字段进行注入

2.配置一下commintlint

这边的话我直接贴一下网上找来的配置,创建commitlint.config.js,并写下如下内容(网上找的,暂时看看)

export default {extends: ['@commitlint/config-conventional'],rules: {"type-enum": [2, 'always', ['feat', 'fix', 'docs', 'perf', 'revert', 'ci', 'test', 'refactor', 'build', 'style', 'chore']],'type-case': [0],//type 的输入格式,默认为小写‘lower-case’'type-empty': [0],//type 是否可为空'scope-empty': [0],//scope 是否为空'scope-case': [0],//scope 的格式,默认为小写‘lower-case’'subject-full-stop': [0, 'never'],//subject 结尾符,默认为.'subject-case': [0, 'never'],//subject 的格式,默认其中之一:['sentence-case', 'start-case', 'pascal-case', 'upper-case']'header-max-length': [0, 'always', 72]//header 最大长度,默认为72字符},};

3.创建husky的commit-msg钩子

我是分了两个步骤

npx husky add .husky/commit-msg

然后在这个钩子中写入

npx --no -- commitlint --edit

二、尝试一下写一个错误的提交

git commit -m "testhh"

看一下有什么错误

我们的commintlint果然很严格呢

三、什么才是合格的提交

我们可以看一下@commitlint/config-conventional这个默认配置的npm页面上是怎么写的

说明一下我们上面的commitlint.config.js之中配置应该是自定义部分和@commitlint/config-conventional这个配置的融合版本

下面借一张图说一下每个项的一些配置涉及什么内容

 上图是一个type-enum的配置,我们要配置的内容其实是value中的,condition代表了生效条件,也就是你的msg的类型一定要是在value之中,rule表示应该是检测的时机,这里是永远需要检测,level应该决定的是违反该规则是否报错,这样的话我们就能更好理解配置中每个内容了,这里其他配置默认配置我就不多说了。

那我们看一下我们写的commitlint.config.js里面的一些内容是啥意思

单说下面这个规则

"type-enum": [2, 'always', ['feat', 'fix', 'docs', 'perf', 'revert', 'ci', 'test','refactor', 'build', 'style', 'chore']]

type-enum我们在上面见到过,它的value是一个数组,为啥这里的值是三个呢,前面那个2和always是啥意思?

实际上每个规则都有三个参数

level表示层级,0表示取消该规则,1表示违反该规则会导致warning,2表示违反规则会抛出一个错误

applicable的值则表示是否逆转这个规则,如 type-enum如果第二个参数写上never,则你提交的msg的type必须不在value的范围之内。

第三个value就是正常的value。

那么我们重看上面的我们在网上找的commitlint.config.js,里面的内容实际上就是取消了@commitlint/config-conventional这个默认配置表的一些规则,这样的话,我觉得如何定制自己的配置大概就有数了。

四、一个完整的正确的提交信息例子

build: 进行一次提交测试这里是提交信息的body部分这个我不知道干什么的footer部分

注意这个“build:"后面有一个空格一定要写,你不写就提示你缺少subject

git有一个提交约定,可以看约定式提交

上面这个网页有详述 ,这样的话就可以理解上面的那些fix等等到底意味着什么,这里我就不写了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/434438.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年五大顶流国漫公司揭秘:谁是最强王者?

各位动漫迷们,是不是觉得2023年的国漫界特别热闹?没错,经过一年激烈的角逐,国漫界涌现出了五大在制作数量和质量上都遥遥领先的顶流公司,他们各怀绝技,各有千秋,让整个国漫界都热闹非凡&#xf…

防御实验(安全策略,用户认证,NAT综合)

目录 步骤一:了解前提: 1.1 题目要求: 1.2 拓扑搭建,IP地址规划。 步骤二:二层配置 2.1 配置IP地址 2.2 valn配置 步骤三:三层的配置(防火墙配置) 3.1 IP地址配置 3.2 云配…

【数学建模美赛资料更新】往届数学建模竞赛成品论文分享/2024美赛成品论文预定

数学建模美赛:今天更新的是【2024美赛赛题翻译参考思路代码 成品论文】预定。上述材料才美赛比赛过程中都是限量发放,每个题目大概300~500份哦,所以需要同学们提前预定,先到先得哟~ 在这里奉上数模加油站在往期【数维杯国际赛、m…

【前端web入门第二天】01 html语法实现列表与表格

html语法实现列表与表格 文章目录: 1.列表 1.1 无序列表1.2 有序列表1.3 定义列表 2.表格 2.1 表格基本结构2.2 表格结构标签 写在最前,第二天学习目标: 列表 表格 表单 元素为嵌套关系 1.列表 作用:布局内容排列整齐的区域。 列表分类:无序列表、有序列表、定义列表。 1…

[Vulnhub靶机] DC-1

[Vulnhub靶机] DC-1靶机渗透思路及方法(个人分享) 靶机下载地址: https://download.vulnhub.com/dc/DC-1.zip 靶机地址:192.168.67.28 攻击机地址:192.168.67.3 一、信息收集 1.使用 arp-scan 命令扫描网段内存活的…

【Leetcode】2865. 美丽塔 I

文章目录 题目思路代码结果 题目 题目链接 给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。 你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i &#xff0c;高度为 heights[i] 。 如果以下条件满足&#xff0c;我们称这些塔是 美丽 的&#xff1a; 1 < hei…

带延迟的随机逼近方案(Stochastic approximation schemes):在网络和机器学习中的应用

1. 并行队列系统中的动态定价Dynamic pricing 1.1 系统的表述 一个含有并行队列的动态定价系统&#xff0c;该系统中对于每个队列有一个入口收费(entry charge) &#xff0c;且系统运行的目标是保持队列长度接近于某个理想的配置。 这里是这个系统的几个关键假设&#xff1a;…

[数据结构]-哈希

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 本期学习目标&…

【每日一题】最大合金数

文章目录 Tag题目来源解题思路方法一&#xff1a;二分枚举答案 写在最后 Tag 【二分枚举答案】【数组】【2024-01-27】 题目来源 2861. 最大合金数 解题思路 方法一&#xff1a;二分枚举答案 思路 如果我们可以制造 x 块合金&#xff0c;那么一定也可以制造 x-1 块合金。于…

log4cplus开源库使用

log4cplus 的github地址&#xff1a;https://github.com/log4cplus/log4cplus 下载链接&#xff1a;log4cplus - Browse /log4cplus-stable/2.0.7 at SourceForge.net 官方文档&#xff1a;log4cplus / Wiki / Home 1.log4cplus配置 &#xff08;1&#xff09;打开解决方案…

利用柯西积分公式证明最大模定理

一、利用柯西积分公式证明最大模定理 一、利用柯西积分公式证明最大模定理 设复变函数f(z)在封闭区域上的解析&#xff0c;则该复变函数的模|f(z)|的最大值只能出现在该区域的边界上&#xff0c;除非是个常数

字符串相关函数【超详细】(strcpy,strstr等string.h中的函数)

文章目录 strlen库中函数定义函数作用函数大概“工作”流程函数使用注意&#xff08;要求&#xff09;函数使用例举 strcpy库中函数定义函数作用函数使用注意&#xff08;要求&#xff09;函数大概“工作”流程函数使用例举 strcat库中函数定义函数作用函数使用注意&#xff08…