我需要强制每个新标签都是带注释的标签。我需要强制它给每个用户而不告诉他们做一些特别的事情。我尝试将标记的别名设为"标记-a -m''""'"''''''''''&#39
答案 0 :(得分:0)
git
不允许您为每个用户强制执行某项政策 - 例如,为克隆您的回购的每个人提供全局别名或默认标记。
它允许您执行的操作是在您管理的某个特定存储库上实施某些策略。您可以使用某些hook拒绝任何包含未注释标记的推送,而不是让所有人自动添加这些标记。
我真的不知道如何判断标签是否有注释,但this answer可能会帮助您开始使用它们。
答案 1 :(得分:0)
你可以试试这个黑客。让每个git命令都通过一个shell脚本,它将查找针对git触发的命令。如果它是"标签"命令,将每个轻量级标记放入带注释的标记中。如果命令不是"标记",则让正常操作按原样继续。以下代码可以帮助您。
#!/bin/bash
git_command=$1
if [ "${git_command}" == "tag" ]; then
echo "User is trying to tag"
if [ "$2" != "-a" ] && [ "$2" != "-m" ]
then
echo lightweight
echo "Second option is not -a nor -m.So looks like user is trying to create a lighweight tag."
tag_message=$2
git tag -a ${tag_message} -m ""
else
git tag $2 $3 $4 $5
echo "Second option is either -a or -m. So may be user is trying to create an annotated tag."
fi
else
echo "User is not tagging. So continue with the git operation user requested."
fi
答案 2 :(得分:0)
在.gitconfig中,您可以使用其他名称创建别名:
[alias]
atag = tag -a -m ""
然后git atag
创建一个带注释的标签。并非完全优雅,但比每次都必须通过-m更好。