git挂钩简介
- git hooks是一些自定义脚本,用于控制git的工作流程,分为客户端钩子和服务端钩子
- 客户端钩子包括:
pre-commoit
、prepare-commit-msg
、post-commit
等。主要用于控制客户端git的提交工作流。服务端钩子包括:pre-receive
、post-receive
、update
,主要在服务端接收提交对象时、推送到服务器之前调用。 - git hooks位于每个git项目下的隐藏文件.git/hooks文件夹里。进入文件夹会看到一些官方给的示例,它们都是以.sample结尾的文件。这些以.sample结尾的示例脚本是不会执行的,只有重命名后才会生效
pre-commit框架【官方文档】
简介:pre-commit是一种用于管理和维护多种语言编写的预提交hook的框架。它是预提交挂钩的多语言包管理器。我们可以指定所需的挂钩列表,并且在每次提交之前预先提交管理以任何语言编写的任何挂钩的安装和执行。
使用方法:
一、安装pre-commit
pip install pre-commit
进入虚拟环境,通过pip进行安装
二、在你的python项目的根目录下新建.pre-commit-config.yaml文件,并在里面配置你所需要的验证规则。
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脚本
pre-commit install
执行结果:
image会在.git/hooks里生成pre-commit文件
四、运行所配置的所有规则,使其起作用
pre-commit run --all-files
执行结果:
4.png五、使用
pre-commit
在git add
提交之后,然后执行git commit
时执行,如果脚步执行没有报错就继续提交,否则就驳回提交的操作,从而实现对代码的检查、优化代码格式等任务。
网友评论