2016-05-04 55 views
2

我已经创建了一个git pre-push hook,它可以构建我的.NET解决方案并运行单元测试。因此,执行git push命令现在会在将代码推送到原点之前触发构建/测试。将参数传递给git预推钩

这一切工作得很好。但是,有些情况下我想绕过这个钩子。也许我知道一个测试失败了,现在没问题,我只想跳过我的钩子逻辑。

理想我可以做这样的事情:

git push --skip-tests

然而,这似乎并不会飞,是因为git的标志--skip-tests作为一个无效的参数。有没有一种方法可以在执行推送时从命令行将参数传入钩子,以便我可以根据该参数是否存在来分支钩子逻辑?

回答

4

你应该跳过它:

git push --no-verify 

git push man page

随着--no-verify,挂钩完全绕过。


然而,这种旁路不只是测试,但所有的钩:建太多。

你可以保持钩子,但添加一个环境变量,钩子脚本将检测到为了构建但不测试。

skip-test=true git push 
+0

完美。谢谢!在这种特殊情况下,完全绕过挂钩将起作用,尽管有能力跳过它的一部分。 – Scott

+0

@Scott我编辑过的答案也指向了另一种选择。 – VonC