【问题标题】:Pass parameters to git pre-push hook将参数传递给 git pre-push hook
【发布时间】:2016-08-30 09:24:59
【问题描述】:

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

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

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

git push --skip-tests

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

【问题讨论】:

    标签: git githooks


    【解决方案1】:

    你应该跳过它:

    git push --no-verify
    

    来自git push man page

    使用--no-verify,完全绕过了钩子。


    但是,这不仅绕过了测试,还绕过了所有的钩子:构建。

    您可以保留钩子,但添加一个钩子脚本会检测到的环境变量,以便构建而不是测试。

    skip-test=true git push
    

    【讨论】:

    • 完美。谢谢!在这种特殊情况下,完全绕过钩子是可行的,尽管能够跳过部分钩子是件好事。
    • @Scott 我已经编辑了答案以指向另一种选择。
    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多