在执行'git merge'命令时,有没有办法绕过合并后的git钩子

在执行'git merge'命令时,有没有办法绕过合并后的git钩子,git,merge,hook,githooks,Git,Merge,Hook,Githooks,我配置了合并后挂钩,以便与另一个版本控制系统集成(半手动)。然而,有时我想避免钩子运行,是否有一些方法可以绕过它进行git merge 我知道有——对于git commit,没有verify命令行参数。这种解决方案非常适合我的用例,但似乎--no verify不适用于git commit命令。没有禁止运行合并后钩子的标志,但您可以轻松地装配自己的合并后钩子(您完全控制它,因为它在您自己的存储库中)服从环境变量。例如,shell脚本可能以以下内容开头: #! /bin/sh warn() {

我配置了合并后挂钩,以便与另一个版本控制系统集成(半手动)。然而,有时我想避免钩子运行,是否有一些方法可以绕过它进行
git merge


我知道有
——对于
git commit
,没有verify
命令行参数。这种解决方案非常适合我的用例,但似乎
--no verify
不适用于
git commit
命令。

没有禁止运行合并后钩子的标志,但您可以轻松地装配自己的合并后钩子(您完全控制它,因为它在您自己的存储库中)服从环境变量。例如,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 merge
git pull便利脚本),只需在持续时间内设置
SKIP\u POST\u merge\u hook=yes

$ SKIP_POST_MERGE_HOOK=yes git merge ...

您似乎在正确的轨道上使用了
--无验证
,q.v。