从git导入存储库到gerrit

DEg*_*ITx 28 git gerrit

我有两个关于Gerrit的问题:

  1. 如何将已存在的Git存储库转换或导入Gerrit的格式?有很多没有Gerrit控件的提交,我想简单地将这些提交推送到Gerrit项目中.

    我认为有两种方法可以做到:

    1. 将现有的裸Git目录复制到Gerrit,然后将其添加到数据库.这是一种安全的方法吗?

    2. 将所有提交从我的本地存储库推送到gerrit存储库.

  2. 如何将存储库从Gerrit还原为原始的Git格式?是否需要删除Gerrit的特殊*/for/*分支来执行此操作?

hel*_*ert 29

首先:没有特殊的"Gerrit格式".Gerrit使用常规git存储库.

  1. 在Gerrit中创建一个新项目(没有初始提交).将创建的存储库作为远程添加到现有存储库并简单地推送.您可以配置Gerrit以允许直接推入存储库(绕过审查),允许您导入整个存储库.

    或者,如果您可以直接访问Gerrit的存储库位置(例如,通过SSH或本地文件系统),您可以直接进入存储库(Gerrit创建它),完全绕过Gerrit.然而,您需要在之后刷新Gerrit缓存,以便Gerrit注意到存储库HEAD已更新.

  2. 如上所述,没有"Gerrit格式".只需从gerrit克隆你的存储库,一切都很好.您无需担心任何特殊分支.

  • 还有一些关于用户访问权限的点(推送时).您必须具有**Create Reference**,**Push**,**Push Merge Commit**和**Push Annotated Tag**权限才能成功推送所有旧提交.此外,所有提交用户都必须注册或在gerrit中有别名的电子邮件. (16认同)
  • 您可以避免注册所有提交作者,同时给出"Forge Committer Identity"权限. (6认同)

小智 8

我将许多GIT项目导入到gerrit中,我发现最简单的方法是将git存储库的xy.git目录复制到gerrit存放git存储库的目录中.重新启动gerrit进程后,新项目将出现在新项目列表中,您可以编辑描述和访问权限.


Kal*_*kki 6

  1. 只需在Gerrit中创建新项目,然后在那里推送git存储库.如果您想绕过评论,请直接推送到master而不是refs/for/master.您需要添加权限才能自行完成此操作.

    我认为错误消息可能是由于您尚未将您的ssh密钥导入Gerrit而引起的.

  2. 只需从Gerrit克隆存储库.它不包括任何额外的分支.