SuperAPI AI 工具集

pre-commit

写作与研究

查看项目

更新于 10-15 22:40

技能介绍

用途:配置并运行 Git 钩子,默认使用 prek(pre-commit 的 Rust 重写版,无需 Python 运行时,兼容同一份 .pre-commit-config.yaml 与 .pre-commit-hooks.yaml)。已有 pre-commit 的仓库仍可继续使用,但 CLI 并非完全一一对应。

主要能力:支持 pre-commit、prepare-commit-msg、commit-msg、pre-push、pre-merge-commit、post-checkout、post-commit、post-merge、manual 等钩子阶段;可安装多个阶段、按文件或阶段运行钩子、跳过指定钩子、管理缓存,并支持通过 try-repo 测试待分发的钩子。

使用方式:安装可用 uv tool install prek(或 pip install prek / cargo install prek),随后 prek install 安装钩子,可用 --hook-type 添加阶段,或在配置中设置 default_install_hook_types。运行用 prek run(默认仅暂存文件)、prek run --files <路径>、prek run <hook-id>、prek run --stage <阶段>;全仓库运行用 prek run --all-files。跳过用 SKIP=hook-id git commit 或 prek run --skip hook-id。缓存管理用 prek cache dir/size/gc/clean。

与 pre-commit 的差异:更新版本用 prek update(对应 pre-commit autoupdate),限定阶段用 run --stage(对应 run --hook-stage),清缓存用 prek cache clean/gc。

限制与注意:prepare-commit-msg 与 commit-msg 钩子需设置 pass_filenames: false,无文件匹配时需 always_run: true;rev 应使用标签或 SHA,勿用分支名;--no-verify 不会绕过 prepare-commit-msg;--skip 仅对 prek run 生效。prek 最低 0.4,pre-commit 最低 3.2.0,pre-merge-commit 需 Git 2.24+。具体收费、平台等信息暂未提供。