巧用 gitHooks 提交前校验代码

本文介绍了如何利用gitHooks、Husky、lint-staged和commitlint在git提交前进行代码校验和提交信息规范。通过Husky自动化配置git hooks,lint-staged针对暂存区文件执行指定命令,commitlint确保提交信息符合规定格式,commitizen提供方便的命令行工具生成合规的commit消息。
摘要由CSDN通过智能技术生成

感谢bigAken投稿

在每一个使用 git 进行版本管理的仓库,都有一个目录 .git/hooks,包含 commit 各个阶段 Hooks 的脚本。这些 Hooks 在 git 操作 commit、push、merge 等得时候,可以做前置或者后置的操作,例如 pre-commit 在 git commit 前可以做代码校验,校验代码的时候使用的ESLint,格式化使用的是 prettier。Git 支持的常用钩子见下表,更多请查看官网Hooks:

Git Hook 调用时机 调用时机
pre-commit git commit 执行前 可以用 git commit --no-verify 绕过
commit-msg git commit 执行前 可以用 git commit --no-verify 绕过
pre-merge-commit git merge 执行前 可以用 git merge --no-verify 绕过
pre-push git push 执行前

本文先实践,怎么去写 pre-commit 这个 git hooks,然后介绍 husky,lint-staged,commitlint 的使用

在 git 项目中,.git/hooks下面有很多 hooks 示例如下383a69cd79392d7d12c4ab625f124521.png

这些 git hooks 都是.sample结尾的,如果要启用某个 hooks 用可以去掉.sample结尾

实践

npm init -y初始化一个项目,然后git init,然后npm install eslint --save-dev

新建.gitignore文件

node_modules

# local env files
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*

*-lock.json
*.lock

新建.eslintrc,配置 eslint

{
 "rules": {
  // 要求使用分号
  "semi": ["error", "always"],
  // 强制使用一致的反勾号、双引号或单引号
  "quotes": ["error", "double"]
 }
}

新建src目录,然后里面新建index.js,禁止使用快捷键格式化

console.log('object')

根目录新建文件夹.customGitHooks然后 git config 'core.hooksPath' .customGitHooks,主要是设置 gitHooks 的存放目录,因为 gitHooks 默认存放目录是.git/hooks,新建pre-commit,写入如下

#!/bin/sh

echo 'start chec
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值