毫无疑问,git已经成为代码托管工具的主力军。最近研究了一个基于git的代码规范利器——pre-commit,已应用到我们项目组。pre-commit用于commit 之前触发git钩子来做一系列动作,这个时候就可以做代码检查,如果不符合规范则commit失败。下面就以我们项目用到的三个钩子(black、flake、bandit)来介绍一下它的骚操作,由于这个项目是python项目,所以是基于python来介绍的,其它的语言也有相应的方法去使用:
准备工作
- 准备一个git仓库
- 执行
pip install pre-commit
安装pre-commit,并在项目根目录下创建一个名为.pre-commit-config.yaml
的文件作为pre-commit的配置文件:
- 注意,这时候我们还并未安装成功,目前pre-commit还只是作为python的一个模块安装到python环境中来,我们需要应用到git中来。接下来,我们可以在配置文件中添加我们需要安装的钩子,在这里我们先看一下格式,首次安装可以不作配置,后面我们添加完配置后在commit的时候会自安装我们新配置的钩子,配置格式如下:
repos: - repo: # 来源 rev: # 版本 hooks: - id: # 钩子 id args: # 执行钩子时候可以添加参数 language_version: # python 版本
- 如下图,执行
pre-commit install
完成应用: