我配置了合并后的钩子,以便(半手动)与另一个版本控制系统集成。但是有时候我想避免运行的钩子是否有某种方法绕过git merge
?
我知道--no-verify
有git commit
命令行参数。这种解决方案对我的用例来说是完美的,但似乎--no-verify
不适用于git commit
命令。
答案 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 ...