我可以抑制git hook,例如prepare-commit-msg通过git命令行参数?

时间:2017-03-24 06:02:26

标签: git

在某些情况下,我希望在提交更改时不要触发.git挂钩。准备提交-MSG

有没有一种简单的方法可以通过命令行来抑制它们(可能类似于--no-verify

3 个答案:

答案 0 :(得分:1)

我能做的最好的(至少这确实回答了这个问题)是获取父级的命令行并寻找传递给它的“ -n”或“ --no-verify”。

if ps -o args= $PPID | grep -E -q ' --no-verify| -n | -n$' ; then
  : # they skipped the commit-msg hook, so skip this hook too!
else
  : # do your hook code here
fi

我确定那里有更好的代码,我只是找不到任何示例!

答案 1 :(得分:0)

你可以用一个环境变量来做到这一点:

SKIP=prepare-commit-msg git commit

答案 2 :(得分:-1)

这是一种可行的方法,虽然不方便。

1.定义一对git配置密钥和值。

git config my.hook true

2.使用钩子中的键和值。

if [ "$(git config --get my.hook)" == "true" ];then
    #do something
fi

3.如果要绕过此挂钩,请先运行git config my.hook false