跳到主要内容

关于从 Bitbucket Server 迁移到 GitHub Enterprise Cloud

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

关于从 Bitbucket Server 迁移

您可以使用 GitHub Enterprise Importer 将仓库从 Bitbucket Server 迁移到 GitHub Enterprise Cloud(GitHub.com 或 GHE.com)。仅支持从 Bitbucket Server 5.14 或更高版本的 Bitbucket Server 或 Bitbucket Data Center 进行迁移。

迁移的数据

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

  • Git 源代码(包括提交历史)

  • 拉取请求(包括评论、拉取请求审查、文件和行级别的拉取请求审查评论、必需的审阅者和附件)

    注意

    如果拉取请求已合并并且在迁移之前已在 Bitbucket Server 上删除了头部分支,则用户在尝试查看拉取请求时可能会收到500错误。Bitbucket Server 会删除此类拉取请求的特定 Git 对象引用,因此无法迁移与拉取请求关联的那些 Git 对象。

未迁移的数据

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

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

迁移数据的限制

GitHub Enterprise Importer 可以迁移的数据量有限制。有些限制是由于 GitHub 的限制,而另一些限制则是 GitHub Enterprise Importer 本身的限制。

GitHub 的限制

  • **单个 Git 提交的 2 GB 大小限制:**Git 仓库中的任何单个提交都不能大于 2 GB。如果您的任何提交都大于 2 GB,则需要将提交拆分为每个大小为 2 GB 或更小的较小提交。
  • **Git 引用的 255 字节限制:**任何单个Git 引用(通常称为“ref”)的名称都不能大于 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:导入器无法迁移元数据超过 10 GB 的代码库。元数据包括问题、拉取请求、发布和附件。在大多数情况下,大型元数据是由附加到发布的二进制资产引起的。您可以使用 `migrate-repo` 命令的 `--skip-releases` 标志排除迁移中的发布,然后在迁移后手动移动您的发布。
  • Git LFS 对象未迁移:导入器可以迁移使用 Git LFS 的代码库,但 LFS 对象本身不会被迁移。迁移完成后,您可以将它们作为后续任务推送到迁移目标。更多信息,请参见“复制代码库”。
  • 需要后续任务:在 GitHub 产品之间迁移时,某些设置不会迁移,必须在新代码库中重新配置。有关每个迁移后需要完成的后续任务列表,请参见“GitHub 产品之间迁移概述”。
  • 代码搜索功能延迟:代码库迁移后,重新索引搜索索引可能需要几个小时,并且在重新索引完成之前,代码搜索可能会返回意外的结果。
  • 为您的组织配置的规则集可能导致迁移失败:例如,如果您配置了一条规则,要求提交作者的电子邮件地址以 `@monalisa.cat` 结尾,而您要迁移的代码库包含不符合此规则的提交,则您的迁移将失败。有关规则集的更多信息,请参见“关于规则集”。
  • 虚拟用户内容可能无法搜索:虚拟用户是将导入内容(例如问题、拉取请求、评论等)关联到的占位符用户。当您搜索与虚拟用户关联的内容(例如分配的问题)时,可能找不到这些问题。一旦虚拟用户被回收,应该可以通过新所有者找到这些内容。更多信息,请参见“回收 GitHub Enterprise Importer 的虚拟用户”。

入门

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

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