Prek
Prek 是用 Rust 重写的 pre-commit,而 pre-commit 是一个用 Python 写的 提交前钩子 框架
# Windowsscoop install prekprek 是一个钩子运行器,它兼容 pre-commit 的配置文件。因此可能同时需要参考两份文档
仓库中的钩子
Section titled “仓库中的钩子”首先创建一个配置文件 .pre-commit-config.yaml。这个配置文件使用了 pre-commit 仓库 中的 check-yaml 和 end-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 文档。
# 将钩子集成到 Git 中prek install# 从 Git 中删除钩子prek uninstall除了使用社区的钩子外,也可以自己编写钩子。官方文档 里有详细的说明。
我个人喜欢使用 just 作为入口,方便统一管理命令。下面是一个结合了 just 和 prek 的示例
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