传递参数给 git pre-push hook

Pass parameters to git pre-push hook

我创建了一个 git 预推挂钩,用于构建我的 .NET 解决方案并运行单元测试。因此,执行 git push 命令现在会在将代码推送到原点之前触发 build/tests。

一切正常。但是,有些情况下我想绕过这个钩子。也许我知道测试失败了,现在这很好,我只是希望能够跳过我的钩子中的逻辑。

理想情况下,我可以这样做:

git push --skip-tests

但是,这似乎并没有实现,因为 git 将 --skip-tests 标记为无效参数。有没有一种方法可以在执行推送时从命令行将参数传递到挂钩中,以便我可以根据该参数是否存在来分支挂钩逻辑?

你应该跳过它:

git push --no-verify

来自git push man page

With --no-verify, the hook is bypassed completely.


但是,这不仅绕过了测试,还绕过了 all hook: build。

您可以保留挂钩,但添加挂钩脚本会检测到的环境变量,以便构建但不进行测试。

skip-test=true git push