Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何从预接收挂钩获取分支名称?_Git_Githooks - Fatal编程技术网

Git 如何从预接收挂钩获取分支名称?

Git 如何从预接收挂钩获取分支名称?,git,githooks,Git,Githooks,我正在与GitHub enterprise合作,我没有将新的预接收挂钩上载到我们的回购协议的权限 我试着将我的钩子作为预推钩子进行测试,它就像一个符咒一样工作, 但是,当我将我的钩子发送给我们的管理员时,他说:“GitHub预接收钩子脚本与git预接收钩子脚本不同。git符号ref——短头可能无法按预期工作” 因此,我需要找到一种方法来替换此命令: current_branch=$(git symbolic-ref --short HEAD) || exit 1 将我的当前分支保存在“curr

我正在与GitHub enterprise合作,我没有将新的预接收挂钩上载到我们的回购协议的权限

我试着将我的钩子作为预推钩子进行测试,它就像一个符咒一样工作, 但是,当我将我的钩子发送给我们的管理员时,他说:“GitHub预接收钩子脚本与git预接收钩子脚本不同。git符号ref——短头可能无法按预期工作”

因此,我需要找到一种方法来替换此命令:

current_branch=$(git symbolic-ref --short HEAD) || exit 1
将我的当前分支保存在“current_branch”参数内的命令


在没有测试能力的情况下,我该如何做呢?

预接收钩子是运行在不同Git中的钩子。Git中的当前分支是不相关的,在预接收钩子中,他们Git的当前分支也是不相关的。无论您的实际任务是什么,使用“当前分支”都是错误的


(如果接收后钩子的任务是将更新部署到当前分支,则其Git的当前分支可能与接收后钩子相关。但是,请注意,接收Git通常配置为“裸”存储库。)

接收前钩子是在不同Git中运行的钩子。Git中的当前分支是不相关的,在预接收钩子中,他们Git的当前分支也是不相关的。无论您的实际任务是什么,使用“当前分支”都是错误的


(如果接收后钩子的任务是将更新部署到当前分支,则其Git的当前分支可能与接收后钩子相关。但是,请注意,接收Git通常配置为“裸”存储库。)

实际上,在使用stdin时,可以从第一个参数“$refname”获取当前分支:

如果您想使用sed进行切割和清洁,只需添加以下内容:

while read oldrev newrev refname; do
    echo "$refname : $oldrev ~ $newrev"
    current_branch=$refname
    short_current_branch="$(echo $current_branch | sed 's/refs\/heads\///g')"
done
您将只获得参数中的分支名称(short\u current\u branch)


实际上,当使用stdin时,可以从第一个参数“$refname”获取当前分支:

如果您想使用sed进行切割和清洁,只需添加以下内容:

while read oldrev newrev refname; do
    echo "$refname : $oldrev ~ $newrev"
    current_branch=$refname
    short_current_branch="$(echo $current_branch | sed 's/refs\/heads\///g')"
done
您将只获得参数中的分支名称(short\u current\u branch)