大家好,我是小郑!时间:20:00完

今天分享关于Githooks。

我们主要讲一下它怎么用?有什么用?我用它来做什么。

前端的小伙伴们对Hook这个东西应该都很了解。

Hook的意思就是钩子,用于在执行某个事件之前或之后进行一些其他额外的操作。

Git有很多的事件,如commit/push等,每个事件都有不同的钩子函数。

我们可以在这些钩子函数中执行一些自己想要的操作来满足一些需求。

那么这些钩子函数怎么查到了?

用下面命令:

cd .git/hooks

webhook工作原理(为什么说GitHooks是个好东西)(1)

上图这些带.sample后缀的文件就是对应事件的钩子函数。

随便点开一个文件,里面就详细说明如何使用它。

大概就是将对应文件名去掉后缀名,保留文件,将自己想要实现的操作写在里面就行。

然而,大家都应该知道,这个.git文件是不能提交到仓库中去的。这样一来,如果是多人合作项目,那别人要用就只能复制过去了。

为了解决这个问题。有一个工具出现了。

Husky

它能让配置 Git 钩子变得更简单。

总的来说就是让配置文件和钩子关联起来。

具体怎么用?有什么实用价值 ? 接下来我给大家举个例子。

讲讲我作为一个前端开发工程师,在我的项目中,我用git Hooks来做什么。

在我的项目中我对代码的提交要求非常严格,也必须规范。比如提交代码信息格式一定要是下面三种形式之一。

--story=需求单号 提交说明

--bug=需求单号 提交说明

--task=需求单号 提交说明

也就是:

git commit -m "--story=12341 说明"

如果不符合这种提交就拦截下来,不准提交。

这个功能怎么实现?

就用到git Hooks来实现了。

第一步:在package.json里写配置

webhook工作原理(为什么说GitHooks是个好东西)(2)

第二步:在build里写执行脚本。

脚本内容相对来说长一点,这里不贴了,有感兴趣的找我要哈。

看一下提交效果,假如我像下面这样提交信息:

git commit -m "1234"

这个提交明显不符合标准,那么控制台会报如下信息:

webhook工作原理(为什么说GitHooks是个好东西)(3)

此次提交拦截了。

当然,关于githooks还有其它的用处。

,