配置 Git Husky 代码提交约束

这篇具有很好参考价值的文章主要介绍了配置 Git Husky 代码提交约束。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

Git Husky 是一个可以管理 Git Hooks 的工具,它可以帮助我们在代码提交的时候运行脚本,以确保代码提交符合特定的规范和约定。

Git 中,允许在操作特定的事件时执行特定的脚本,这些事件我们称之为 Hooks

Git Husky 利用这些 Hooks 实现了在代码提交前、提交信息规范校验等自动化运行脚本的功能。

安装与配置

1、安装
yarn add husky -D

首先我们需要在项目内安装 husky,并且初始化。

2、添加配置
npx husky install

执行 npx husky install 将会生成 ./husky 的文件夹,在这里我们可以配置 Git Hooks 的脚本文件。

3、初始化
npm pkg set scripts.prepare="husky install"

执行 npm pkg set scripts.prepare="husky install" 将会设置 prepare 的脚本,并将该脚本的执行命令设置为 husky install,它将会在项目启动时初始化 Git Husky

4、添加 pre-commit hook
npx husky add .husky/pre-commit

执行 npx husky add .husky/pre-commit 将会生成脚本 ./husky/pre-commit ,它会在 git commit 之前执行脚本,如果脚本报错的情况下将无法提交。

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

undefined
5、配置执行脚本

在我们常用的场景中,我们需要在 git commit 之前对脚本进行代码规范的检测。

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

npm run lint

我们将命令修改以上配置,它将会在 git commit 之前执行 npm run lint 命令来执行 eslint 代码检测,如果检测不通过将会拒绝提交。

当然你也可以通过 npx husky add .husky/pre-commit "npm run lint" 命令直接生成脚本。

7、添加 commit-msg hook
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

commit-msg hooks 用于提交信息被保存之后运行。

8、commitlint 校验
yarn add @commitlint/cli -D

我们通常使用 commitlint 工具对提交信息格式进行校验,所以我们需要安装 @commitlint/cli

9、常用配置
yarn add @commitlint/config-conventional -D

@commitlint/config-conventional 是一个符合提交信息规范的配置,我们可以直接使用。

@commitlint/config-conventional 的规范中,为我们提供了一下规则。

分类 描述
feat 新特性
fix 修复 bug
perf 性能优化
refactor 代码重构
build 外部依赖项的更改
chore 测试文件的更改
ci 修改构建配置或脚本
docs 仅文档修改
revert 撤销之前的提交
test 添加或修正测试用例

新建文件 commitlint.config.cjs 导入 @commitlint/config-conventional 规则。

module.exports = {
  extends: ['@commitlint/config-conventional'],
};
10、测试
git commit -m '修复了bug' // ×
git commit -m 'fix: 修复了bug' // √

通过分别执行以上代码我们发现,当提交的信息不符合规范时,Git Hooks 拒绝了我们的提交。

总结

Git husky 是一个 Git hooks 管理的工具,它可以帮助我们在代码提交时运行脚本,确保代码提交符合特定的规范和约定。

  • 通过 husky 可以自动化地运行脚本,避免了手动操作的繁琐性,提高了效率。

  • 在代码提交前、提交信息保存后等多个阶段进行校验和处理,保证了代码质量和规范性。

  • 可以结合其他工具和规范进行使用,如 ESLintPrettiercommitlint 等,增加了灵活性和可扩展性。

写在最后

感谢你的阅读~

如果你有任何的疑问欢迎您在后台私信,我们一同探讨学习!

如果觉得这篇文章对你有所帮助,点赞、在看是最大的支持!文章来源地址https://www.toymoban.com/news/detail-434935.html

到了这里,关于配置 Git Husky 代码提交约束的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从0搭建Vue3组件库(十三):引入Husky规范git提交

    虽然我们项目中引入了 prettier 和 eslint 对代码格式进行了校验,但是多人开发的时候难免依然会有人提交不符合规范的代码到仓库中,如果我们拉取到这种代码还得慢慢对其进行修改,这是一件很麻烦的事情,同时也为了避免团队成员提交五花八门message,因此我们可以引入 husky 来从

    2024年02月07日
    浏览(52)
  • 代码约束(ESlint\prettier\husky\lint-staged\commitlint)

    JavaScript 是一个动态的弱类型语言,在开发中比较容易出错。因为没有编译程序,为了寻找 JavaScrip 代码错误通常需要在执行过程中不断调试。像 ESLint 可以让程序员在编码的过程中发现问题而不是在执行过程中,帮助我们提高开发效率。 提高代码整体的可读性、可维护性、可

    2024年04月08日
    浏览(77)
  • git commit提交时报错husky > pre-commit (node v14.19.3)

    git commit提交时报错husky > pre-commit (node v14.19.3)         使用了 husky , pre-commit (客户端) 钩子,它会在 Git 键入提交信息前运行做  代码风格检查 。如果代码不符合相应规则,则报错 (我使用的 souceTree 提交代码) 。          第一种方案: 需要根据代码风格去提交代码

    2024年02月17日
    浏览(62)
  • git提交报错:husky - pre-commit hook exited with code 1 (error)

    提交代码的时候,提交错误了… 无论是使用 idea 自带的工具还是直接使用命令行都会报错 很明显报错信息: husky - pre-commit hook exited with code 1 (error) 部分人可以成功(我就不行…) 由于项目使用了husky,在提交前对代码规范进行了校验,导致报错

    2024年02月11日
    浏览(80)
  • git提交终端报husky - pre-commit hook exited with code 1 (error)

    今天像往常一样正常提交代码不知道哪里出了问题 终端“抽风”了 我没提交成功 报错如下 然后就开始找解决方法 看到最多的是commit时加上提交信息 :\\\"fix:xxxx\\\" 然后我就试了一下 发现并没有用 欸 咋整捏 (ps: 这个方法我用了之后没用 不代表他就是错的呀 可能是错误不太一样

    2024年02月11日
    浏览(65)
  • git提交时报错:husky-commit-msg hook exited with code 1 (error)

    ​问题描述: git commit 时控制台报错: 由于项目使用了husky,在提交前对代码规范进行了校验,导致报错 这种情况下无法直接push o(╥﹏╥)o ​ 解决方案: commit 时加上提交信息:“fix: xxxxx”,比如: 提交后就可以顺利push了 O(∩_∩)O ​

    2024年02月11日
    浏览(56)
  • 潇洒郎: git配置、拉取、提交代码

    git config --global user.name \\\"xuxiaosa\\\" git config --global user.email \\\"xuxiaosa@migu.cn\\\" 1、打开git-bash 输入ssh-keygen 一直回车,会提示文件保存的地址 id_rsa,id_rsa.pub两个文件默认在user/.ssh目录下     不用https git pull git add . git commit -m \\\'优化用户建立连接后等待问题,避免超时断链\\\' git push git che

    2023年04月23日
    浏览(54)
  • Git 如何将一个项目的代码放到一个新的仓库中,但不在新的仓库中显示旧的提交记录

    场景:我想把RuoYi的代码放到一个新的仓库里,放进去之后,这个仓库会显示RuoYi之前的所有提交,如何不显示这些旧的提交? 有时候,我们可能需要将一个项目的代码放到一个新的仓库中,但是我们又不想在新的仓库中显示旧的提交记录。这可能是因为旧的提交记录包含一

    2024年02月07日
    浏览(51)
  • 项目git commit时卡主不良代码:husky让Git检查代码规范化工作

    看完 《前端规范之Git工作流规范(Husky + Commitlint + Lint-staged) 前端规范之Git工作流规范(Husky + Commitlint + Lint-staged) - Yellow_ice - 博客园》,再次修改本文 团队人一多,提交一多,还是要对备注加以区分,好快速找到变更点。这时候就需要对每次提交,需要输入message,对提交

    2024年02月03日
    浏览(133)
  • git拉取提交代码进行身份验证-输入账号密码以及配置SSH公钥

    git初次拉取代码或者提交代码时,需要进行身份验证。验证有两种方式:1、账号密码验证;2、SSH公钥验证。 本文章以gitee为例 1.首先找到电脑本地项目文件夹,在地址栏中输入 cmd 回车,打开命令行窗口。 2.输入 git clone 要拉取的项目地址,回车,一会弹出输入账号密码的对

    2024年02月12日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包