Git hook

(1 min to read)

在特定动作发生前后触发自定义的脚本构造,分为两类:

  • 客户端钩子:pre-commit, commit-msg, post-commit
  • 服务端钩子:pre-receive, post-receive, update

pre-commit

在每次git commit前触发,通常用于代码规范检查,可以通过--no-verify跳过。

使用pre-commit框架。

pip install pre-commit安装,可能还需要source ~/.profile

pre-commit --version确认安装成功。

pre-commit sample-config > .pre-commit-config.yaml在根目录下生成默认配置。

pre-commit install自动将当前目录下的所有钩子脚本安装到.git/hooks/中。

pre-commit run --all-files可自行检查git管理的所有文件,而git commit只会检查变更的文件。

配置

pre-commit/pre-commit-hooks提供了一些钩子(如去除行尾空格),直接指定id即可。

doublify/pre-commit-rust提供了rust相关的钩子(格式化,静态检查等)。