#git-hook #git #directory #changed #monorepo #pre-commit #root-directory

app git-hooks-dispatch

仅在文件已更改的目录中运行钩子。对于单体仓库很有用。

6个版本 (3个破坏性更新)

0.4.2 2021年8月31日
0.4.1 2021年8月23日
0.3.0 2021年8月4日
0.2.0 2021年8月2日
0.1.0 2021年8月1日

#2154 in 开发工具

MIT许可证

19KB
398

git-hooks-dispatch

仅在文件已更改的目录中运行钩子。对于单体仓库很有用。

Crates.io test

安装

cargo install git-hooks-dispatch

设置

按照以下方式设置您想要的钩子

钩子文件(例如 .git/hooks/pre-commit

#!/bin/sh
git-hooks-dispatch $(basename $0) -- "$@"

确保文件具有执行权限。

然后,在子目录中,您可以在项目根目录中设置与项目根目录中相同的钩子。

例如

./sub-project1/git-hooks/pre-commit

#!/bin/sh
npm run lint-staged

./sub-project2/git-hooks/pre-commit

#!/bin/sh
mvn antrun:run@ktlint-format

钩子递归执行

在以下示例中,如果 ./foo/bar/B 已更改,则按以下顺序递归执行 pre-commit 钩子

  1. ./foo/bar/git-hooks/pre-commit
  2. ./foo/git-hooks/pre-commit
.
├── .git
│  └── hooks
│     └── pre-commit
└── foo
   ├── A
   ├── git-hooks
   │  └── pre-commit
   └── bar
      ├── B
      └── git-hooks
         └── pre-commit

钩子目录名

git-hooks-dispatch 默认搜索名为 hooks-dir.hooks-dir 的钩子目录。您可以通过 --hooks-dir 选项进行更改。

git config core.hooksPath git-hooks

打印日志

设置 RUST_LOG 环境变量以开启日志记录。

RUST_LOG=debug git commit ...

依赖关系

~13–26MB
~412K SLoC