跳到主要内容

认识

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 commitgit push等操作前,能够执行其它一些操作,比如进行ESLint检查,如果不通过,就不允许commitpush

二、安装


安装husky,可以使用npm进行安装。

npm install husky --save-dev