跳转到内容

Prek

Prek 是用 Rust 重写的 pre-commit,而 pre-commit 是一个用 Python 写的 提交前钩子 框架

Terminal window
# Windows
scoop install prek

prek 是一个钩子运行器,它兼容 pre-commit 的配置文件。因此可能同时需要参考两份文档

首先创建一个配置文件 .pre-commit-config.yaml。这个配置文件使用了 pre-commit 仓库 中的 check-yamlend-of-file-fixer 钩子。关于配置文件的详细说明请阅读 pre-commit 文档

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-yaml
- id: end-of-file-fixer

然后可以使用 prek run 运行这些钩子。当然最好的方式是将钩子集成到 Git 中,这样每次提交前就会自动运行这些钩子。prek CLI 的详细用法请阅读 prek 文档

Terminal window
# 将钩子集成到 Git 中
prek install
# 从 Git 中删除钩子
prek uninstall

除了使用社区的钩子外,也可以自己编写钩子。官方文档 里有详细的说明。

我个人喜欢使用 just 作为入口,方便统一管理命令。下面是一个结合了 justprek 的示例

repos:
- repo: local
hooks:
- id: lint-sh
name: Shell Lint
entry: just lint-sh
language: system
pass_filenames: false
priority: 0
- repo: local
hooks:
- id: update-docs
name: Docs Update
entry: just update-docs
language: system
pass_filenames: false