Repolode
evilmartians

evilmartians/lefthook

用 Go 编写的 Git hooks 管理工具,可并行执行提交、推送等钩子命令,适用于 Node.js、Ruby、Python 等多种项目。

可替代:Husky

Star
8,931
Fork
325
未关闭 Issue
91
最近提交
昨天

这是什么?

Lefthook 通过一个 lefthook.yml 文件统一管理项目的 Git hooks,可为 pre-commit、pre-push、commit-msg 等钩子配置命令,执行一次 lefthook install 即可接入仓库。它以单个无依赖的二进制文件发布,也可通过 npm、gem、pipx、Go、Homebrew、apt、winget 等方式安装。

每个钩子下的任务可以并行执行,并能通过 glob 模式、排除规则或暂存文件列表筛选需要处理的文件。任务支持通过 tags 分组,用 root 指定子目录运行,也能执行脚本文件或通过 docker run 等运行器执行。个人可用 lefthook-local.yml 跳过或覆盖部分任务,而无需修改团队共享的配置。

配置中定义的命令还可以用 lefthook run 直接运行,适合放置共用的自动修复或 lint 任务。输出内容也可以精简,只显示执行与失败信息。

核心功能

  • 01并行执行钩子命令,缩短 pre-commit 和 pre-push 的检查时间。
  • 02通过 glob 模式、排除规则或暂存文件列表为每个任务筛选文件。
  • 03使用 tags 对任务分组,并可按钩子包含或排除。
  • 04支持在子目录、脚本文件和 Docker 容器中运行任务。
  • 05允许开发者在本地配置文件中保存个人覆盖设置。

适用场景

  • 在每次提交前对暂存文件运行 ESLint、Stylelint 或 RuboCop。
  • 推送前执行依赖审计或安全检查。
  • 通过 commit-msg 脚本强制执行提交信息模板。
  • 团队共享一组自动修复任务,并按需用 lefthook run 运行。

快速上手

  1. 1

    使用 npm 将 lefthook 安装为开发依赖

    npm install lefthook --save-dev
  2. 2

    在 lefthook.yml 中配置你的钩子

  3. 3

    将钩子安装到 Git 项目中

    lefthook install

使用前须知

  • 部分配置和使用细节仅在外部文档网站上提供。

标签

常见问题

lefthook 是什么?
用 Go 编写的 Git hooks 管理工具,可并行执行提交、推送等钩子命令,适用于 Node.js、Ruby、Python 等多种项目。 Lefthook 通过一个 lefthook.yml 文件统一管理项目的 Git hooks,可为 pre-commit、pre-push、commit-msg 等钩子配置命令,执行一次 lefthook install 即可接入仓库。它以单个无依赖的二进制文件发布,也可通过 npm、gem、pipx、Go、Homebrew、apt、winget 等方式安装。
lefthook 可以免费使用吗?用的什么许可证?
lefthook 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
lefthook 还在维护吗?
活跃维护中。lefthook 最近一次提交是在 2026年10月21日。
lefthook 适合用来做什么?
在每次提交前对暂存文件运行 ESLint、Stylelint 或 RuboCop。 推送前执行依赖审计或安全检查。 通过 commit-msg 脚本强制执行提交信息模板。 团队共享一组自动修复任务,并按需用 lefthook run 运行。
lefthook 怎么安装和运行?
使用 npm 将 lefthook 安装为开发依赖: npm install lefthook --save-dev 在 lefthook.yml 中配置你的钩子 将钩子安装到 Git 项目中: lefthook install
在哪里获取 lefthook?
源代码和安装说明在 GitHub 上:https://github.com/evilmartians/lefthook

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目