【问题标题】:Disable hooks for a single git command禁用单个 git 命令的钩子
【发布时间】:2020-02-08 18:44:59
【问题描述】:

鉴于我需要在我的钩子脚本中使用 git,我希望我的钩子脚本不要自己触发钩子。所以我想在每个命令的基础上跳过钩子。

即我正在寻找类似的选项:

git --no-hooks some-git-command

【问题讨论】:

  • 对于提交挂钩,您有 --no-verify 选项。

标签: git command-line-interface hook


【解决方案1】:

另一个粗略的想法。

  1. 只需文件中的注释行 .git/hooks/pre-commit 带有符号“#”。
  2. 运行单个或多个命令
  3. 取消注释
  4. 利润。

【讨论】:

    【解决方案2】:

    你可以使用:

    git -c core.hooksPath=/dev/null some-git-command

    如果您不在 Unix 上(没有 /dev/null),我想您可以使用:

    git -c core.hooksPath= some-git-command

    【讨论】:

    • 您是否会建议一种解决方案来选择性地仅禁用一个钩子(例如:.git/hooks/post-commit)(仍然从命令行发出)?
    • 也许创建一个目录.git/all-hooks-but-one,其中包含指向所有钩子的符号链接,但要禁用的钩子,添加使用git -c core.hooksPath=.git/all-hooks-but-one?但并不理想:某些操作系统不支持符号链接,您需要在添加/删除/重命名新钩子时更新链接。
    • 记录一下 - 我找到了有吸引力的解决方案:hook controlled from command line。简单得要命:) 无论如何,+1 也适用于你的一般方式。
    猜你喜欢
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2023-01-08
    • 2014-11-11
    • 2020-03-11
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    相关资源
    最近更新 更多