首页 > 解决方案 > 将标志添加到要在挂钩中使用的 git 命令

问题描述

我有一个 git 钩子,每当我推送时都会运行测试:

.git/hooks/pre-push

cd $GOPATH/src/lab.omitted.com/omitted/tools/tribute/
./run-newman-non-dkr.sh

我想在那里有一个标志,这样我就可以在不运行测试的情况下推送:

if [[ $* == *--skiptest* ]]
then
    echo Skipping Newman Test
else
    echo --- Running Newman Test
    cd $GOPATH/src/lab.omitted.com/omitted/tools/tribute/
    ./run-newman-non-dkr.sh
fi

但是我不能git push带着那个标志跑

$ git push --set-upstream origin feature/417/itp-update --skiptest
error: unknown option `skiptest'

有没有解决的办法?

标签: git

解决方案


您不能在推送中添加标志。

但是你可以告诉 git 忽略这个钩子

使用--no-verify,完全绕过钩子。

git push --no-verify

否则,您可以执行以下操作之一:

  1. 编写具有所需配置的配置文件并在您的挂钩中读取它
  2. 使用所需的标志向您的提交添加注释git notes add ....并在您的钩子中再次阅读
  3. 将您的代码推送到特定分支并跳过对该分支的测试,如果您希望合并它,请尽可能使用拉取请求(不知道您的服务器是什么)
  4. 提交一个特定的文件,如果它存在,只要 git 在提交中看到这个文件就运行测试

推荐阅读