Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将已存在的带有多个分支和标记的git repo导入gerrit_Git_Gerrit - Fatal编程技术网

将已存在的带有多个分支和标记的git repo导入gerrit

将已存在的带有多个分支和标记的git repo导入gerrit,git,gerrit,Git,Gerrit,我正在尝试将一个已有的git存储库和多个分支和标记导入gerrit。我在看官方的导游 但是,当发出push命令时,除了我当前所在的“master”之外,所有的分支和标记都是“Gerrit禁止的”。输出如下所示: user@host:~/my-project$ git push ssh://user@localhost:29418/demo-project *:* [....] * [new branch] master -> master ! [remote rejected]

我正在尝试将一个已有的git存储库和多个分支和标记导入gerrit。我在看官方的导游

但是,当发出push命令时,除了我当前所在的“master”之外,所有的分支和标记都是“Gerrit禁止的”。输出如下所示:

user@host:~/my-project$ git push ssh://user@localhost:29418/demo-project *:*
[....]
* [new branch]      master -> master
! [remote rejected] origin/Branch1 -> origin/Branch1 (prohibited by Gerrit)
! [remote rejected] origin/Branch2 -> origin/Branch2 (prohibited by Gerrit)
[....]
! [remote rejected] Tag1 -> Tag1 (prohibited by Gerrit)
! [remote rejected] Tag2 -> Tag2 (prohibited by Gerrit)
[....]
我是管理员,所以这不应该是访问权限问题

更新: 通过使用blahdiblah的脚本()我成功地移动了所有分支。
为了能够传输所有标记,我首先必须使用gerrit web界面为组管理员授予*refs/tags/**的“创建引用”权限。之后,我可以使用git push--tags推送它们。

为了将现有存储库导入Gerrit,允许
refs/*
的最小权限集是为我们提供的:

  • 创建引用
    (非常明显)
  • 伪造作者身份
    伪造提交者身份
    (因为您正在推动其他人的提交)
  • 推送
    (非常明显)
  • Push Merge Commit
    (这不包括在
    Push
    中,您可能会有合并提交)
  • 推送带注释的标记
    (我们在一些标记中使用注释)
显然,如果您有签名的标记,您还需要允许
推送签名的标记

最后,如果计划在某个过渡期内多次运行导入以增量同步存储库,则还需要允许
读取
并为所有
推送
权限启用
强制推送