16

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

在我的本地存储库中,我签出了分支,然后使用添加了标签

git tag v2.0.1

现在我正试图将它推给 gerrit,但我不确定如何。我试过这个:

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

如何将标签推送到 gerrit?

4

4 回答 4

20

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

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
于 2013-07-31T17:15:10.823 回答
12
  1. 添加权限:

点击你的项目Access,添加权限如下:

Reference:  
refs/tags/*

Push Annotated Tag 
Push Signed Tag 
  1. 添加您的标签

注释标签:git tag -a "message" tag_name

签名标签:git tag -s tag_name

  1. 推送你的标签

简单的命令:git push --tags

如果您想使用 cmd 从服务器存储库中获取标签:

git fetch --tags

您可以查看文档:

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

于 2015-10-23T10:13:11.520 回答
5

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

标签和分支都是引用,将标签视为对提交的固定引用,将分支视为提交分支尖端的移动引用。

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

于 2013-07-30T17:56:17.777 回答
1

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

添加“创建引用”权限后,您可以使用git push --tags推送轻量级标签。

于 2016-07-05T02:41:35.590 回答