我有两个关于Gerrit的问题:
如何将已存在的Git存储库转换或导入Gerrit的格式?有很多没有Gerrit控件的提交,我想简单地将这些提交推送到Gerrit项目中。
我认为有两种方法可以做到:
将现有的裸Git目录复制到Gerrit,然后将其添加到数据库。这是一种安全的方法吗?
将所有提交从我的本地存储库推送到gerrit存储库。
如何将存储库从Gerrit还原为原始Git格式?是否需要删除Gerrit的特殊*/for/*
分支才能执行此操作?
答案 0 :(得分:28)
首先:没有特殊的“Gerrit格式”。 Gerrit使用常规git存储库。
在Gerrit中创建一个新项目(没有初始提交)。将创建的存储库作为远程添加到现有存储库并简单地推送。您可以配置Gerrit以允许直接推入存储库(绕过审查),允许您导入整个存储库。
或者,如果您可以直接访问Gerrit的存储库位置(例如通过SSH或本地文件系统),您可以直接进入存储库(Gerrit创建它),完全绕过Gerrit。然而,您需要在之后刷新Gerrit缓存,以便Gerrit注意到存储库HEAD已更新。
如上所述,没有“Gerrit格式”。只需从gerrit克隆你的存储库,一切都很好。您无需担心任何特殊分支。
答案 1 :(得分:8)
我向gerrit导入了许多GIT项目,我发现最简单的方法是将git存储库的xy.git目录复制到gerrit存放git存储库的目录中。 重新启动gerrit进程后,新项目将出现在新项目列表中,您可以编辑描述和访问权限。
答案 2 :(得分:6)
只需在Gerrit中创建新项目,然后在那里推送git存储库。如果您想绕过评论,请直接推送到master而不是refs / for / master。您需要添加权限才能自行完成此操作。
我认为错误消息可能是因为您尚未将您的ssh密钥导入Gerrit。
只需从Gerrit克隆存储库。它不包括任何额外的分支。
答案 3 :(得分:0)
其他信息...
因此,您可以直接将git存储库复制到gerrit数据位置,它将在重新启动(或刷新缓存(reindex))后显示。
但是您将丢失存储库中的重要配置,这可能会阻止推送,创建分支,查看等功能。
如果您查看存储库,将会看到它缺少'refs / meta / config'分支。 因此,在没有更改的普通系统中,它将继承自“所有项目”,但这可以是您配置中的任何项目。
修复配置的步骤:
例如
[access]
inheritFrom = All-Projects
您现在可以使用具有合理继承配置的存储库,就像其他项目一样。