Python

参考链接:

## 安装
python -m pip install pre-commit
## 也可以直接下载安装
## curl https://pre-commit.com/install-local.py | python -

## 查看版本
pre-commit -V
pre-commit 2.6.0

## 在项目中生成配置文件
## 使用命令查看模板
# pre-commit sample-config

## 在 git 项目中安装
pre-commit install

## 配置文件
vim .pre-commit-config.yaml

可以参考一下这个配置文件

repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v2.3.0
    hooks:
    -   id: check-yaml
    -   id: end-of-file-fixer
    -   id: trailing-whitespace
-   repo: https://github.com/psf/black
    rev: 19.3b0
    hooks:
    -   id: black
-   repo: https://github.com/Lucas-C/pre-commit-hooks-bandit
    rev: v1.0.4
    hooks:
    -   id: python-bandit-vulnerability-check
        args: [-l, --recursive, -x, tests]
        files: .py$
-   repo: https://github.com/asottile/reorder_python_imports
    rev: v1.6.1
    hooks:
    -   id: reorder-python-imports

这样,我们在每次提交 git commit 之前,都会先经过一遍代码风格的检查

git add data/csv_reader.py
git commit -m "test CsvTickData with ticks.dat"

[WARNING] Unstaged files detected.
[INFO] Stashing unstaged files to /home/william/.cache/pre-commit/patch1597726472.
Check Yaml...........................................(no files to check)Skipped
Fix End of Files.........................................................Passed
Trim Trailing Whitespace.................................................Passed
black....................................................................Passed
bandit...................................................................Passed
Reorder python imports...................................................Passed
[INFO] Restored changes from /home/william/.cache/pre-commit/patch1597726472.
[ctpmd c7e7f4f] test CsvTickData with ticks.dat
 1 file changed, 39 insertions(+), 23 deletions(-)

C/C++