mysql pre_commit_git commit前检测husky与pre-commit

一、前言

现在最流行的版本管理工具非git莫属,而良好的代码规范有助于项目的维护,为了防止一些不规范的代码 commit并push到远端,我们可以在git命令执行前用一些钩子来检测并阻止。现在大前端主要有两种git钩子插件:husky(jquery与next.js都在用),pre-commit(antd在用)。

下面我将现介绍一个git钩子,再介绍下husky与pre-commit的用法

二、git钩子

用过git的小伙伴们都知道git有很多命令commit、push、rebase等等。那这些命令主要是在执行.git文件夹中的东西,那么git 钩子目录就是在.git文件夹的hooks下,如下所示:

cd .git/hooks

ls -l

64e90b90b2825ec0134e23a58a64a92d.png

上图为各个钩子的案例脚本,可以把sample去掉,直接编写shell脚本来执行。

而前端的小伙伴们则可以用插件husky与pre-commit,来使钩子生效。

注意: 一般.git为隐藏文件,可以把项目拖入IDE中查看,.git文件里的内容一般不允许手动更改的。

三、husky

husky能够防止不规范代码被commit、push、merge等等。

首先安装husky

npm install husky --save-dev

yarn add husky --dev

编辑package.json文件,如:

{

"scripts": {

"precommit": "webpack --config ./web/webpack.config.js",

"...": "..."

}

}

当你git commit的时候,将会现现执行 precommit里的脚本,没有问题了再提交。

d23380feed99d4f8c877d37c0c0f51d6.png

四、pre-commit

pre-commit能够防止不规范代码被commit,没有husky这么全面,但是你可以接着安装pre-push等插件来防止对应的git操作。下面以pre-commit为例:

首先安装pre-commit

npm install pre-commit --save-dev

编辑package.json文件,如:

"scripts": {

"test": "echo \"Error: I SHOULD FAIL LOLOLOLOLOL \" && exit 1",

"foo": "echo \"fooo\" && exit 0",

"bar": "echo \"bar\" && exit 0"

},

"pre-commit": [

"foo",

"bar",

"test"

]

pre-commit的配置项非常灵活,还可以下面这样写:

{

"precommit": "foo, bar, test"

"pre-commit": "foo, bar, test"

"pre-commit": ["foo", "bar", "test"]

"precommit": ["foo", "bar", "test"],

"precommit": {

"run": "foo, bar, test",

},

"pre-commit": {

"run": ["foo", "bar", "test"],

},

"precommit": {

"run": ["foo", "bar", "test"],

},

"pre-commit": {

"run": "foo, bar, test",

}

}

你配置好后,执行git commit命令,它将会依次执行foo、bar、test来检测完善代码。

五、总结

我们已经怎么用git钩子插件了,那么我们一般用它来做什么呢。

prevent commit时,我们可以把eslint以及test命令加上,检测代码规范:

"scripts": {

"precommit": "lint-staged && npm run test"

}

prevent publish 主干分支时,我们可以把tag打上:

"scripts": {

"precommit": "npm run tag"

}

参考资料

Happy coding .. :)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值