有没有办法在执行`git merge`命令时绕过合并后的git hook

时间:2015-10-30 06:16:55

标签: git merge hook githooks

我配置了合并后的钩子,以便(半手动)与另一个版本控制系统集成。但是有时候我想避免运行的钩子是否有某种方法绕过git merge

我知道--no-verifygit commit命令行参数。这种解决方案对我的用例来说是完美的,但似乎--no-verify不适用于git commit命令。

1 个答案:

答案 0 :(得分:3)

没有标志可以禁用运行合并后挂钩,但您可以轻松地设置自己的合并后挂钩(您完全控制它,因为它在您自己的存储库中)以遵守环境变量。例如,shell脚本可能以:

开头
#! /bin/sh
warn() {
    echo "warning: $1" 1>&2
}
case ${SKIP_POST_MERGE_HOOK:-no} in
yes) exit 0;;
no) ;;
*) warn "mystery value ${SKIP_POST_MERGE_HOOK} for SKIP_POST_MERGE_HOOK";;
esac
... rest of code as usual ...

现在,如果你想运行git merge但是绕过钩子(或者为你运行git pull便利脚本运行git merge),只需设置SKIP_POST_MERGE_HOOK=yes为持续时间:

$ SKIP_POST_MERGE_HOOK=yes git merge ...