9

我无法在我的 git 远程存储库中推送带注释的标签。gerrit 中提供了所有访问权限。例如。[参考/*]

我正在使用以下命令创建标签

git tag -a v1.0 -m 'Base Version' 712d77e

当我尝试使用以下命令推送时

git push origin v1.0 

或者

git push origin --tags

我收到以下错误。

Counting objects: 1, done.
Writing objects: 100% (1/1), 157 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done
To ssh://...
! [remote rejected] v1.0 -> v1.0 (prohibited by Gerrit)
error: failed to push some refs to 'ssh://...'

请让我知道我应该如何在存储库中推送标签。

谢谢....

4

5 回答 5

20

如果不允许推送,例如因为推送用户没有足够的权限,这是 Gerrit 返回的一般错误消息。

特别是会发生此错误:

  1. 如果您将提交进行代码审查推送到您没有上传权限的分支(访问权限 Push on refs/for/refs/heads/*

  2. 如果您在没有推送访问权限的情况下绕过代码审查refs/heads/*

  3. 如果您在没有 Push Annotated Tag 访问权限的情况下推送带注释的标签refs/tags/*

  4. 如果您在没有推送签名标签访问权限的情况下推送签名标签refs/tags/*

  5. 如果您推送没有访问权限的轻量级标签为引用名称创建引用refs/tags/*

  6. 如果您使用其他人作为标记者推送标记,并且您没有参考名称的 Forge Committer 访问权限refs/tags/*

  7. 如果您推送到处于只读状态的项目

对于新用户来说,他们经常会意外地试图绕过代码审查。然后推送失败,出现 Gerrit 禁止的错误消息,因为项目不允许绕过代码审查。通过直接推送到refs/heads/*(例如refs/heads/master)而不是推送到refs/for/*(例如)来绕过代码审查refs/for/master

Gerrit 禁止复制

更多描述:我在新安装 gerrit 2.7 时遇到了同样的问题,搜索并找到了这个 stackoverflow 问题,但我的案例是这个描述的第 5 号(轻量级标签),所以我为 refs/tags/* 添加了创建引用权限,并且问题解决了。

于 2013-11-18T07:13:55.513 回答
3

您需要为 [refs/tags/*] 添加以下项目的权限:

  • 创建参考:创建一个新标签。
  • 伪造提交者身份:允许不同的标签上传者(你)到原始标签者。
  • 伪造作者身份:允许处理属于其他用户的提交。

有关详细信息,请参阅Gerrit 访问控制

于 2015-07-14T09:12:20.960 回答
2

这一行给你一个提示:

! [remote rejected] v1.0 -> v1.0 (prohibited by Gerrit)

Gerrit 禁止推送,因为您的用户不在具有“推送注释标签”权限的组中。

于 2013-05-09T15:50:19.227 回答
1

创建带注释的并检查 gerrit。您必须在允许创建注释的正确组中

如果您创建简单的标签,gerrit 可能会拒绝该引用,但它可能再次取决于 gerrit 配置。

创建带注释的标签:

git tag -a -m "一些信息" 

推送所有标签:

git push --标签

检查标签是在远程创建的:

git ls-remote --tags
于 2015-10-23T10:00:04.180 回答
0

Gerrit 禁止” - 意味着必须允许权利。

首先选择您的项目并转到“访问”。然后“编辑”并从下拉菜单中“添加权限”。比必须在带有箭头的图片上添加三个权限。


在此处输入图像描述


比你可以在终端中使用:

git push origin --tags

!!!重要注意,权利适用于refs/tags/*

于 2017-08-16T12:12:48.283 回答