如何将标签推送到gerrit中的特定分支

时间:2013-07-30 17:38:26

标签: git gerrit

我在gerrit中有一个名为v2.0的分支。现在我想将此分支的当前统计信息设为v2.0.1

在我的本地存储库中,我检查了分支,然后使用

添加了标记
git tag v2.0.1

现在我试图将其推向格里特,但我不确定如何。我试过这个:

$ git push origin v2.0.1 HEAD:refs/heads/v2.0
! [remote rejected] v2.0.1 -> v2.0 (prohibited by Gerrit)

如何将标签推送到gerrit?

4 个答案:

答案 0 :(得分:19)

经过一些谷歌搜索后,我找到了答案:

gerrit仅接受带注释的标签。创建和推送带注释的标签非常简单:

git checkout v2.0
git tag -am "Adding v2.0.1 tag" v2.0.1
git push origin v2.0.1 HEAD:refs/heads/v2.0

答案 1 :(得分:9)

  1. 添加权限:
  2. 点击您的项目Access,添加如下权限:

    Reference:  
    refs/tags/*
    
    Push Annotated Tag 
    Push Signed Tag 
    
    1. 添加标记
    2. 带注释的标签:git tag -a "message" tag_name

      签名代码:git tag -s tag_name

      1. 推送您的代码
      2. 简单cmd:git push --tags

        如果您想使用cmd从服务器仓库获取代码:

        git fetch --tags

        您可以查看doc:

        https://review.typo3.org/Documentation/access-control.html#category_push_annotated https://review.typo3.org/Documentation/access-control.html#category_push_signed

答案 2 :(得分:4)

标签和分支在Git中是完全独立的概念,所以你的命令没有意义。标记仅链接到提交,并且是存储库范围的。

标记和分支都是引用,将标记视为提交的固定引用,并将分支作为提交分支顶端的移动引用。

如果提交标记v2.0.1已经在v2.0分支中,我说您只需将两者都推送到origin。如果没有,您将要将包含该标记的分支合并到v2.0分支中,并推送它们。

答案 3 :(得分:1)

如果你推送一个轻量级标签,你应该添加特权'创建参考'对于引用名称refs/tags/*,因为正如CharlesB所说,标记和分支都是引用。

添加'创建参考'是的,您可以使用git push --tags推送轻量级标签。