本地拒绝服务器上不存在的推送标签

Locally reject pushed tags that don't exist on server

我们使用的是 sourcetree,它默认推送标签(如果您选中了复选框),有人不断推送旧标签和临时标签,弄乱了我们遥控器的标签。我们只想禁用使用预推送挂钩推送标签的功能。

这看起来很简单,但我找不到以前做过的人。

将以下内容放入 hooks/ 目录中名为 update 的文件中:

#!/bin/sh
if [[  == refs/tags/* ]]
then
   echo "No tags allowed!"
   exit 1
fi
exit 0

编辑:如果您真的想要客户端挂钩,请将以下内容放入每个名为pre-push的文件中开发人员的 .git/hooks 目录(尽管根据 this page 看起来 Stash 支持普通脚本):

#!/bin/sh

while read local_ref local_sha remote_ref remote_sha
do
    if [[ $local_ref == refs/tags/* ]]
    then
       echo "No tags allowed!"
       exit 1
    fi
done

exit 0