git挂钩简介
- git hooks是一些自定义脚本,用于控制git的工作流程,分为客户端钩子和服务端钩子
- 客户端钩子包括:
pre-commoit 、prepare-commit-msg 、post-commit 等。主要用于控制客户端git的提交工作流。服务端钩子包括:pre-receive 、post-receive 、update ,主要在服务端接收提交对象时、推送到服务器之前调用。 - git hooks位于每个git项目下的隐藏文件.git/hooks文件夹里。进入文件夹会看到一些官方给的示例,它们都是以.sample结尾的文件。这些以.sample结尾的示例脚本是不会执行的,只有重命名后才会生效

1.png
pre-commit框架【官方文档】
简介:pre-commit是一种用于管理和维护多种语言编写的预提交hook的框架。它是预提交挂钩的多语言包管理器。我们可以指定所需的挂钩列表,并且在每次提交之前预先提交管理以任何语言编写的任何挂钩的安装和执行。
使用方法:
一、安装pre-commit
1 | pip install pre-commit |
进入虚拟环境,通过pip进行安装
二、在你的python项目的根目录下新建.pre-commit-config.yaml文件,并在里面配置你所需要的验证规则。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | default_stages: [commit] repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v2.1.0 hooks: - id: check-case-conflict - repo: https://github.com/pre-commit/mirrors-autopep8 rev: v1.4.4 hooks: - id: autopep8 args: [-i, --global-config=.flake8, -v] - repo: https://github.com/pre-commit/pre-commit-hooks rev: v2.4.0 hooks: - id: flake8 |
所支持其他的【hooks】

image
三、安装git hook脚本
1 | pre-commit install |
执行结果:

image
会在.git/hooks里生成pre-commit文件
四、运行所配置的所有规则,使其起作用
1 | pre-commit run --all-files |
执行结果:

4.png
五、使用

5.png