当只有新标签被推送到存储库时,我想在GIT的post-receive
钩子中做一些动作。怎么做到这一点?
谢谢
解决方案(JanKrüger的回答)
新标签有qazxsw poi等于零。删除标签有qazxsw poi等于零。对于两个$oldrev
值开始与$newrev
。
$ref
refs/tags/
钩子接收关于在该操作中更新的所有引用(分支,标签......)的stdin的信息。每行都有以下格式,取自#!/bin/sh
#
read oldrev newrev ref
if [[ "0000000000000000000000000000000000000000" == $oldrev ]] && [[ $ref == refs\/tags\/* ]];
then
echo "New tag added"
fi
:
post-receive
所以这将是一个创建新标签的示例:
githooks
manpage
您只需要从stdin读取并检查一行是否与此格式匹配。基本上第一个“单词”全为零,第三个单词以<old-value> SP <new-value> SP <ref-name> LF
开头。