跳至主要内容

关于从 Bitbucket Server 迁移到 GitHub Enterprise Cloud

了解 GitHub Enterprise Importer 可以迁移哪些数据。

关于从 Bitbucket Server 迁移

您可以使用 GitHub Enterprise Importer 将仓库从 Bitbucket Server 迁移到 GitHub Enterprise Cloud。从 Bitbucket Server 迁移仅支持 Bitbucket Server 或 Bitbucket Data Center 版本 5.14+ 或更高版本。

迁移的数据

我们目前仅支持将以下仓库数据从 Bitbucket Server 迁移到 GitHub Enterprise Cloud。

  • Git 源代码(包括提交历史记录)
  • 拉取请求(包括评论、拉取请求审查、文件和行级拉取请求审查评论、必填审查者和附件)

未迁移的数据

目前,以下数据**未**迁移。

  • 用户拥有的个人仓库
  • 分支权限
  • 提交评论
  • 仓库设置
  • CI 管道

迁移数据限制

GitHub Enterprise Importer 迁移存在一些限制。其中一些是由于 GitHub.com 的限制,而另一些则是 GitHub Enterprise Importer 自身的限制。

GitHub.com 的限制

  • 单个 Git 提交大小限制为 2 GB:Git 仓库中的单个提交不能超过 2 GB。如果您的任何提交大于 2 GB,您需要将提交拆分为多个较小的提交,每个提交大小不超过 2 GB。
  • Git 引用大小限制为 255 字节:单个 Git 引用(通常称为“引用”)的名称不能超过 255 字节。通常,这意味着您的引用不能超过 255 个字符,但任何非 ASCII 字符(如表情符号)可能会占用超过一个字节。如果您的任何 Git 引用过大,我们将返回一个清晰的错误消息。
  • 文件大小限制为 100 MB:Git 仓库中的单个文件不能超过 100 MB。考虑使用 Git LFS 来存储大文件。有关更多信息,请参阅“管理大文件”。

GitHub Enterprise Importer 的限制

  • Git 仓库大小限制为 10 GB:此限制仅适用于源代码。要检查仓库存档是否超过限制,请使用 git-sizer 工具并查看输出中的总 Blob 大小。git-sizer 工具还有助于识别可能影响迁移的大文件、Blob 大小、提交大小和树计数相关的问题。
  • 元数据限制为 10 GB:Importer 无法迁移元数据超过 10 GB 的仓库。元数据包括问题、拉取请求、发布和附件。在大多数情况下,大型元数据是由附加到发布的二进制资产引起的。您可以使用 migrate-repo 命令的 --skip-releases 标志从迁移中排除发布,然后在迁移完成后手动移动您的发布。
  • Git LFS 对象未迁移:Importer 可以迁移使用 Git LFS 的仓库,但 LFS 对象本身不会迁移。它们可以在迁移完成后作为后续任务推送到您的迁移目标。有关更多信息,请参阅“复制仓库”。
  • 迁移后需要完成的任务: 在 GitHub 产品之间迁移时,某些设置不会迁移,需要在新的仓库中重新配置。有关每次迁移后需要完成的后续任务列表,请参阅“GitHub 产品之间迁移概述”。
  • 代码搜索功能延迟: 仓库迁移后,重新索引搜索索引可能需要几个小时,代码搜索可能会返回意外结果,直到重新索引完成。
  • 为您的组织配置的规则集可能会导致迁移失败:例如,如果您配置了一条规则,要求提交作者的电子邮件地址以 @monalisa.cat 结尾,而您要迁移的仓库包含不符合此规则的提交,则您的迁移将失败。有关规则集的更多信息,请参阅“关于规则集”。
  • 模特内容可能无法搜索:模特是占位符用户,导入的内容(例如问题、拉取请求、评论等)与之关联。当您搜索与模特关联的内容(例如分配的问题)时,可能找不到这些问题。一旦模特被回收,内容应该可以通过新所有者找到。有关更多信息,请参阅“为 GitHub Enterprise Importer 回收模特”。

入门

在从 Bitbucket Server 迁移之前,您应该规划如何运行迁移。在迁移任何数据之前,您需要选择一个人来运行迁移。您必须授予该人对迁移源和目标的必要访问权限。我们还建议您先进行试迁移。

有关从头到尾的迁移过程概述,请参阅“从 Bitbucket Server 迁移到 GitHub Enterprise Cloud 的概述”。