如何用 simple-git-hooks 快速管理 Git 钩子?轻量级工具的完整指南 🚀
simple-git-hooks 是一款零依赖的轻量级 Git 钩子管理工具,能帮助开发者在代码提交、推送等 Git 操作前自动执行检查命令(如代码 lint、格式化),确保代码质量。它配置简单、体积小巧,特别适合中小型项目快速接入 Git 工作流规范。
📌 为什么选择 simple-git-hooks?三大核心优势
1️⃣ 极致轻量化,零依赖负担
| 工具 | 解压后大小 | 依赖总量 |
|---|---|---|
| husky v8 | 6.44 kB | 6.44 kB |
| pre-commit | ~80 kB | ~850 kB |
| simple-git-hooks | 10.9 kB | 10.9 kB |
simple-git-hooks 无需安装额外依赖,仅需一个配置文件即可运行,极大减少项目体积。
2️⃣ 配置超简单,5 分钟上手
无需复杂脚本,只需在 package.json 中添加钩子命令,即可完成设置。告别繁琐的钩子文件管理,让团队专注于业务逻辑。
3️⃣ 广泛行业认可,知名项目在用
包括 Autoprefixer、PostCSS、Nano ID 等热门开源项目均采用 simple-git-hooks 管理 Git 工作流,稳定性和可靠性经过实战验证。
📚 快速开始:3 步完成 Git 钩子配置
第 1 步:安装依赖
在项目根目录执行以下命令,将 simple-git-hooks 安装为开发依赖:
npm install simple-git-hooks --save-dev
第 2 步:添加配置
在 package.json 中添加 simple-git-hooks 字段,定义需要触发的 Git 钩子及对应命令。例如:
{
"simple-git-hooks": {
"pre-commit": "npx lint-staged", // 提交前执行代码检查
"pre-push": "npm run test", // 推送前运行测试
"preserveUnused": ["commit-msg"] // 保留未使用的 commit-msg 钩子
}
}
第 3 步:应用配置
执行 CLI 命令生成 Git 钩子文件:
npx simple-git-hooks
此时,Git 钩子已生效!下次执行 git commit 或 git push 时,配置的命令将自动运行。
⚙️ 高级配置:不止于 package.json
独立配置文件(推荐)
除了 package.json,还可使用独立文件存放配置,支持多种格式:
- JavaScript 模块:
simple-git-hooks.js或.simple-git-hooks.mjsexport default { "pre-commit": "eslint . --ext .js" }; - JSON 文件:
simple-git-hooks.json{ "pre-commit": "prettier --write ." }
自定义配置路径
如需指定配置文件路径(如多环境配置),可通过命令行参数传入:
npx simple-git-hooks ./configs/git-hooks.js
❌ 如何卸载?一键清除钩子
若需移除 simple-git-hooks,执行以下命令即可自动清理所有钩子文件:
npm uninstall simple-git-hooks
💡 常见问题解决
Q:如何跳过钩子执行?
A:使用 --no-verify 选项跳过单次操作:
git commit -m "紧急修复" --no-verify
或设置环境变量跳过所有钩子:
export SKIP_SIMPLE_GIT_HOOKS=1
Q:GUI 工具中提示 "npx: 未找到命令"?
A:创建 ~/.simple-git-hooks.rc 初始化脚本,添加 Node 环境变量:
# 示例:适配 nvm 环境
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
并设置全局变量指向该脚本:
export SIMPLE_GIT_HOOKS_RC="$HOME/.simple-git-hooks.rc"
🎯 总结:谁该用 simple-git-hooks?
- 中小项目:快速接入 Git 规范,无需学习复杂工具
- 性能敏感场景:零依赖特性适合低资源环境
- 团队协作:统一代码检查标准,减少人工 review 成本
立即尝试 simple-git-hooks,让 Git 工作流自动化更简单、更高效!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



