【发布时间】:2018-04-27 07:40:55
【问题描述】:
我们有 2 个 Gerrit 站点。
当尝试将其中一个存储库从 gerrit 站点 A 拉到我的本地笔记本电脑,并将我的本地存储库推送到 gerrit 站点 B 时,我遇到了一个问题。
对于 gerrit 站点 A,我已成功克隆了存储库,对于 gerrit 站点 B,我已将存储库访问权限设置为:
Reference:refs/tags/*
Push
Allow Administrators Force Push
Push Annotated Tag
Allow Administrators Force Push
当尝试使用命令git push <remote repo> --tags
我收到 [remote rejected] <tag name> -> <tag name> (prohibited by Gerrit) 之类的错误
查看本地仓库.git文件夹后,发现所有标签都存放在.git/packed-refs中,而refs/tags文件夹中什么都没有
我不确定 push 命令是否试图在 gerrit 站点 B 的存储库中创建 packed-refs 文件?
有什么办法可以处理这种情况吗?必须将packed-refs解压到refs/tags文件夹然后再推送吗?
【问题讨论】:
-
命令中的
remote repo是站点 B 存储库的 url 吗? -
远程repo别名,如
origin,这里我们使用dest -
dest是否指向站点 B 的存储库?用户名是否属于管理员组? -
是的,
dest指向站点 B 存储库,而我使用的用户在管理员组中。实际上,对于其他选项都可以正常工作,例如在站点 B 中创建标签并将其提取到本地存储库(此标签将在本地存储库.git/refs/tags下创建) -
将
Create Reference权限授予管理员。