前端工程化 词条目录
前端Wiki/词条/Husky Git 钩子

Husky Git 钩子

定义把 Git 钩子(pre-commit、commit-msg 等)在团队成员间共享的轻量工具,让规范真正卡在提交前

Git 钩子本身只存在 .git/hooks 目录里,而 .git 不进版本库,所以它天然无法在团队间共享。Husky 的作用就是把钩子配置写进 package.json,安装时自动把钩子脚本写到每个开发者的 .git 中,pre-commit、pre-push、commit-msg 都能统一管理。

husky v9 的用法极简:npx husky init 后,在 .husky/ 目录放对应名字的脚本文件即可。它最常见的搭档是 lint-staged 与 commitlint:前者只检查暂存区文件保证速度,后者校验提交信息格式。注意钩子失败就会中止提交,这才是它「拦住坏代码」的机制。升级或卸载时旧钩子残留在成员电脑里也很常见,重新执行一次 husky 安装命令或手动清理即可同步。

JavaScript
// package.json —— 安装 husky 并初始化
// npx husky init   会创建 .husky/ 并写入 prepare 脚本
{
  "scripts": {
    "prepare": "husky"     // npm install 时自动装钩子
  },
  "devDependencies": {
    "husky": "^9.0.0",
    "lint-staged": "^15.0.0"
  }
}

// .husky/pre-commit —— 提交前只跑暂存区文件的检查
npx lint-staged

// .husky/commit-msg —— 校验提交信息是否符合规范
echo "$(cat "$1")" | npx commitlint --config commitlint.config.js
⚠ 常见误区
🔗 相关词条代码审查与 Git Hooks提交信息规范
← 返回来源章节代码审查与 Git Hooks