git commit校验代码格式、提交信息(husky+lint-staged+commitlint)

本文介绍了如何通过husky、lint-staged和commitlint来校验git代码格式和提交信息,确保团队代码风格统一和提交信息清晰。详细讲述了husky的旧版与新版安装及配置,lint-staged的作用,以及commitlint的配置,包括错误测试和最终效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

一千人眼里有一千个哈姆雷特,在一个团队项目中,代码风格不统一,会大大的降低可读性,也会给后期的维护增加时间成本。如果代码风格统一、代码提交信息也简单明了,那么在后期协作以及处理bug时可以达到事半功倍的效果,所以就需要在我们使用git提交时校验eslint和提交信息的格式问题。需要用到的插件 huskylint-stagedcommitlint,写这个之前也看过网上的一些教程,使用的时候多多少少还存在一些问题,下面会把期间遇到的问题和解决方案详细的列出来。

一、husky

husky 是一个为 git 客户端增加 hook 的工具。安装成功后,它会自动在仓库中的 .git/hooks/ 目录下增加相应的钩子;比如本项目种需要使用的 commit-msgpre-commit 钩子就会在你执行 git commit 的触发。但是!在我写这篇文档的时候它的版本已经到了husky@7.0.4,安装后并没有找到相应的钩子,为此也是看官方文档找了好久才找到原因: husky自v6以后,安装便不再在.git/hooks/ 目录下生成相应的钩子,以下会给出新版本和旧版本不同的使用方式。

旧版本的方式我用的是 husky@4.3.8

npm install husky@4.3.8

在安装前可以看到.git/hooks/ 默认是有一些钩子的样例文件。
​​​​​​​​​在这里插入图片描述
安装时如果在控制台打印了以下内容,则代表安装并生成钩子成功Setting up git hooks。如果没有,检查一下自己安装的版本是多少,新版本安装时是不会打印以下内容的。
在这里插入图片描述
安装成功后再去文件目录下,就可以看到一系列钩子文件(不带.sample后缀的),这里我把原来的样例文件删掉了,删不删都一样,不影响。而 commit-msgpre-commit 就是本次我们需要使用的钩子。
在这里插入图片描述

如果使用新版本的方式,要知道新版的 husky工作原理是使用了从git 2.9开始引入的一个新功能 core.hooksPathcore.hooksPath可以让你指定 git hooks所在的目录而不使用默认的 .git/hooks/。这样 husky可以使用 husky installgit hooks的目录指定为 .husky/,然后使用 husky add命令向 .husky/hook中添加对应的hook。通过这种方式我们就可以只添加我们需要的 git hook,而且所有的脚本都保存在了一个地方(.husky/目录下)因此也就不存在同步文件的问题了。具体的内容commitlint也在的官方文档中给出了步骤。

先安装最新的husky

npm install husky --save-dev

启动git钩子。启用后就可以看到项目根目录下生成了.husky文件夹。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值