首页/开发/Git 与协作速查/pre-commit 钩子的典型用法
进阶与大仓实践69 条

pre-commit 钩子的典型用法

提交前跑轻量检查:格式化、静态检查、敏感串扫描;原则是快(秒级)且可局部运行,慢检查放 pre-push 或 CI。

Git 与协作速查开发更新于 2026-10-12
触发git commit 生成提交前
常用内容格式化工具、lint、密钥扫描、禁止提交大文件
跳过git commit --no-verify(应急,需说明)

钩子示例

钩子示例
#!/bin/sh
set -e
git diff --cached --name-only --diff-filter=ACM | grep -E '\.(js|ts)$' | xargs -r npx eslint --max-warnings=0
只检查暂存区内容最符合直觉:用 git diff --cached 取文件列表,避免把未暂存改动一起判罚。

易错点

  • 钩子扫描整个工作区而不是暂存区,会误报未准备提交的内容
  • 检查过慢会让人习惯 --no-verify,先优化耗时再谈强制

数据来源与参考

  • Git 官方文档:githooks(pre-commit)
  • pre-commit 框架文档(pre-commit.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌