我们如何强制git始终添加标注为注释

时间:2014-03-20 03:40:46

标签: git

我需要强制每个新标签都是带注释的标签。我需要强制它给每个用户而不告诉他们做一些特别的事情。我尝试将标记的别名设为"标记-a -m''""'"''''''''''&#39

3 个答案:

答案 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更好。