标签与其他任何(如提交)相同。
如果标签被推送到一个post-receive hook的回购,该钩子将被调用,并将列出所有更新的参考,除了它们的名称(在其标准输入)之外,所有参考的旧值和新值都是。例如
查看此服务器post-receive email挂钩。
#!/bin/sh
. $(dirname $0)/functions
process_ref() {
oldrev=$(git rev-parse $1)
newrev=$(git rev-parse $2)
refname="$3"
set_change_type
set_rev_types
set_describe_tags
case "$refname","$rev_type" in
refs/tags/*,tag)
# annotated tag
refname_type="annotated tag"
function="atag"
short_refname=${refname##refs/tags/}
# change recipients
if [ -n "$announcerecipients" ]; then
recipients="$announcerecipients"
fi
;;
esac
}
while read REF; do process_ref $REF; done
对于这个工作,你还必须从上述的例子钩库安装the functions file。
当我推送标签时,“$ 1,$ 2和$ 3”全部为空。 – chovy 2013-11-07 09:58:00
@chovy strage。这个类似的脚本(http://www.kaarsemaker.net/blog/2013/10/16/automatically-pushing-local-git-repositories-other-sources/)没有相同的问题。 – VonC 2013-11-07 13:13:09
我在答案中修正了这个例子,以便它是一个完整的bash脚本,对于那些懒得跟随post-receive链接的人 – 2014-08-25 19:55:31