繁体   English   中英

在 Gitlab 实例之间迁移 repos

[英]Migrate repos between instances of Gitlab

由于我旧的 Gitlab 安装太难升级(TKL 支持论坛上的主题: http ://www.turnkeylinux.org/forum/support/20120913/upgrading-gitlab),我已经下载了当前的 TKL Gitlab 发行版,并且遵循 Gitlabs 标准升级路径,因此我现在有一个完全升级的 Gitlab 6.1 安装,运行 TKLBAM 和所有这些好东西。 到目前为止一切顺利。

但是,事实证明我们旧版本的 gitlab 没有给 repos 提供 HTTP url,所以这意味着我不能在 Gitlab 6.1 中使用“导入现有存储库”功能

我知道我可以简单地将旧的 Git 存储库从旧的 VM 复制到新的存储库,但是如何使这些存储库在新 VM 上的 Gitlab 中可见?

我最近从 gitolite 迁移到 gitlab,官方 rake 任务gitlab:import:repos对我gitlab:import:repos 我正在使用 gitlab 6.1.0 (82f3446)。 这是我所做的:

  • rsync从 gitolite 到repositories/{group}/repositories/{group}/ 确保将{repository}替换为 gitolite {repository}的名称,并更改 gitlab 服务器的主机名。

     rsync -rth --progress repositories/{repository}.git \\ git@gitlab-server:/home/git/repositories/{group}/

    此处, {group}是您希望将存储库添加到的用户组的名称。 如果您没有任何特定组,请选择root作为组名。

  • 修复权限——仅当rsync用户不是git时才需要:

     sudo chown -R git:git repositories/{group}/
  • cd ~/gitlab

  • 运行 rake 任务以导入所有新存储库:

     bundle exec rake gitlab:import:repos RAILS_ENV=production

现在,如果您以管理员身份登录,您会发现添加了新项目。

有关更多信息,请参阅http://{your-gitlab-server}/help/raketasks下的“将裸存储库导入 GitLab 项目实例”。

在您的情况下,您可以登录到您的旧 TKL 系统并将所有裸存储库 rsync 到新实例,然后导入。

一种选择是:

  1. 将旧的 repo 从 gitlab 克隆到开发机器上。
  2. 在新的 gitlab 上创建一个空白的 repo。
  3. 在开发机器上添加新的 repo 作为远程。
  4. 将所有内容推回到新的回购中。
  5. 从远程仓库列表中删除旧仓库。

要创建一个名为 newRepo 的远程,请执行以下操作: git remote add newRepo gitlab.localhost.com:User/newRepo.git (将末尾的 url 替换为您的 repo 的 URL)

在阅读了 ChrisA 的答案后,我几乎按照以下方式进行了操作,这让我对如何实际操作感到有些头疼。 该示例将 repo 从 github 复制到 gitlab,以使源和目标更清晰一点。

  1. 将旧仓库从 github 克隆到开发机器上(创建一个裸仓库):

     $ git clone --mirror git@github.com:me/myrepo.git
  2. 在新的 gitlab 上创建一个空白的 repo。

  3. 在开发机器上添加新的 repo 作为远程。

     $ cd myrepo.git $ git remote add newRepo git@gitlab.com:me/myrepo.git
  4. 将所有内容推回到新的回购中。

     $ git push --mirror newRepo

就是这样。

通过这种方式,它将所有分支和标签复制到新目的地。

您现在可以从开发机器中删除克隆的裸存储库。

如果您的 Gitlab 是 >= 8.9,那么您可以使用导出/导入来迁移存储库。

GitLab 13.8 (2021 年 1 月)以来,您现在拥有:

直接在实例之间迁移组

一种更快、更简单的方式来迁移您的 GitLab 组。
组迁移是一项新功能,可让您将 GitLab 组从一个实例直接复制到另一个实例,而无需导出和导入任何文件

在此版本中,我们仅迁移具有基本字段的 Group 对象。
我们计划跟进越来越多的字段和相关对象,直到以这种易于使用的方式迁移 Group 中的所有相关数据。

请参阅文档史诗

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM