认识
2023年02月22日
一、认识
1.1 什么是 Git Hook
和其它版本控制系统一样,Git
能在特定的重要动作发生时触发自定义脚本。有两组这样的钩子: 客户端的和服务器端的。 客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。 你可以随心所欲地运用这些钩子。
其中,客户端钩子我们可能用的比较多,客户端钩子通常包括了提交工作流钩子、电子邮件工作流钩子和其它钩子。这些钩子通常存储在项目的.git/hooks
目录下,我们需要关注的主要是提交工作流钩子。提交工作流钩子主要包括了以下四种:
-
pre-commit
: 该钩子在键入提交信息前运行。 它用于检查即将提交的快照。如果该钩子以非零值退出,Git
将放弃此次提交,你可以利用该钩子,来检查代码风格是否一致。 -
prepare-commit-msg
: 该钩子在启动提交信息编辑器之前,默认信息被创建之后运行。 它允许你编辑提交者所看到的默认信息。 -
commit-msg
: 该钩子接收一个参数,此参数存有当前提交信息的临时文件的路径。 如果该钩子脚本以非零值退出,Git
将放弃提交,因此,可以用来在提交通过前验证项目状态或提交信息。 -
post-commit
: 该钩子一般用于通知之类的事情。
1.2 什么是 Husky
husky
是常见的git hook
工具,使用husky
可以挂载Git
钩子,当我们本地进行git commit
或git push
等操作前,能够执行其它一些操作,比如进行ESLint
检查,如 果不通过,就不允许commit
或push
。
二、安装
安装husky
,可以使用npm
进行安装。
npm install husky --save-dev