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 开发工具
19KB
398 行
git-hooks-dispatch
仅在文件已更改的目录中运行钩子。对于单体仓库很有用。
安装
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
钩子
./foo/bar/git-hooks/pre-commit
./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仓库中管理钩子(推荐)
git config core.hooksPath git-hooks
打印日志
设置 RUST_LOG
环境变量以开启日志记录。
RUST_LOG=debug git commit ...
依赖关系
~13–26MB
~412K SLoC