通过" - push-option ="发送多个选项in" git push"

时间:2017-09-12 19:42:22

标签: git git-push

使用 Git 2.10 ,新选项[--push-option=]。创建裸存储库时,会在hooks目录中自动创建 post-receive.sample ,其中包含以下内容:

#!/bin/sh
#
# An example hook script to make use of push options.
# The example simply echoes all push options that start with 'echoback='
# and rejects all pushes when the "reject" push option is used.
#
# To enable this hook, rename this file to "pre-receive".

我尝试了以下步骤

  1. 重命名文件以预先接收
  2. 将存储库克隆到本地计算机
  3. 试过git push --push-option=echoback=Hello_world
  4. 正如样本所说,它将Hello_world放回我的终端。

    Git Hook Manual表示我可以通过--push-option=发送多个选项,可以通过GIT_PUSH_OPTION_0, GIT_PUSH_OPTION_1,...查看,如手册所示。

    我的问题是我应该如何通过多个选项?可以通过 --push-option=

    传递

    尝试过的选项:

    1. git push --push-option="echoback=Hello echoback=World"
    2. git push --push-option="echoback=Hello;echoback=World"
    3. git push --push-option="echoback=Hello&echoback=World"
    4. git push --push-option="echoback=Hello%echoback=World"
    5. git push --push-option="echoback=Hello,echoback=World"

2 个答案:

答案 0 :(得分:2)

尝试以下方法:

git push --push-option="echoback=Hello" --push-option="echoback=World"

这将分隔--push-option s

答案 1 :(得分:0)

Git 2.15.x / 2.16(2018年第一季度)澄清了多个推送选项的用法,添加了&#34; --push-option=<string>&#34; &#34; git push&#34;的选项现在默认为通过push.pushOption变量配置的字符串列表。

所以你可以使用多个推送选项:

git push --push-option="a" --push-option="b"

或使用多个配置字符串

~/.gitconfig
  push.pushoption = a
  push.pushoption = b

commit d805275Marius Paliga (``)(2017年10月23日) Junio C Hamano -- gitster --合并于commit c692fe2,2017年11月6日)

  

builtin/push.c:添加push.pushOption config

     

需要通过命令行明确给出推送选项&#34; git push --push-option <option>&#34;。
  添加配置选项push.pushOption,这是一个多值选项,包含默认发送的推送选项。

     

在优先级较低的配置文件中设置推送选项时   (例如/etc/gitconfig$HOME/.gitconfig),稍后可能会将其取消   空字符串更具体的存储库配置。