左脚
最快的多块 外面的金钩经理
快速而强大的Git悬钩管理器用于Node.js,Ruby或任何其他类型的项目.
- 快点. 它用"去"写,可以并行运行命令.
- 权相相相. 配置中的几行可以只检查已更改的文件
pre-push钩. - 很简单. 它是单一的无依赖二进制,可以在任何环境中工作.
📖 阅读介绍文章
# On `git push` lefthook will run spelling and links check for all of the changed files
pre-push:
parallel: true
commands:
spelling:
files: git diff --name-only HEAD @{push}
glob: "*.md"
run: npx yaspeller {files}
check-links:
files: git diff --name-only HEAD @{push}
glob: "*.md"
run: npx markdown-link-check {files}
使用量
选择您的环境 :
然后,你可以找到所有左撇子的特性 完整向导 并探索 维基百科。 。 。 .
为什么是左撇子
-
并行执行
若欲更快相会. 示例
pre-push:
parallel: true
-
文件的灵活列表
如果你想要自己的名单. 自定义 财务报告和审定财务报表 预建 实例.
pre-commit:
commands:
frontend-linter:
run: yarn eslint {staged_files}
backend-linter:
run: bundle exec rubocop --force-exclusion {all_files}
frontend-style:
files: git diff --name-only HEAD @{push}
run: yarn stylelint {files}
-
光标和正则表达式过滤器
如果您想要过滤文件列表 .
pre-commit:
commands:
backend-linter:
glob: "*.rb" # glob filter
exclude: "application.rb|routes.rb" # regexp filter
run: bundle exec rubocop --force-exclusion {all_files}
-
在子目录中执行
如果您要在相对路径中执行命令
pre-commit:
commands:
backend-linter:
root: "api/" # Careful to have only trailing slash
glob: "*.rb" # glob filter
run: bundle exec rubocop {all_files}
-
运行脚本
如果单行命令不够,可以执行文件. 示例。 。 。 .
commit-msg:
scripts:
"template_checker":
runner: bash
-
标记
如果你想控制一组命令. 示例。 。 。 .
pre-push:
commands:
packages-audit:
tags: frontend security
run: yarn audit
gems-audit:
tags: backend security
run: bundle audit
-
支持嵌入器
若入多克环境. 示例。 。 。 .
pre-commit:
scripts:
"good_job.js":
runner: docker run -it --rm <container_id_or_name> {cmd}
-
本地配置
如果您是前端/后端的开发者, 并且想要跳过不必要的命令或将一些内容覆盖到 Docker 中 . 说明。 。 。 .
# lefthook-local.yml
pre-push:
exclude_tags:
- frontend
commands:
packages-audit:
skip: true
-
直接控制
如果你想直接运行钩子组.
$ lefthook run pre-commit
-
你的任务
如果您想要直接运行特定的一组命令 .
fixer:
commands:
ruby-fixer:
run: bundle exec rubocop --force-exclusion --safe-auto-correct {staged_files}
js-fixer:
run: yarn eslint --fix {staged_files}
$ lefthook run fixer