在特定动作发生前后触发自定义的脚本构造,分为两类:
- 客户端钩子:
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相关的钩子(格式化,静态检查等)。