Skip to main content

关于从 Bitbucket Server 迁移到 GitHub Enterprise Cloud

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

关于从 Bitbucket Server 迁移

可使用 GitHub Enterprise Importer 将存储库从 Bitbucket Server 迁移到 GitHub Enterprise Cloud(GitHub.com 或 GHE.com)。 仅 Bitbucket Server 或 Bitbucket 数据中心 5.14+ 或更高版本支持从 Bitbucket Server 进行迁移。

迁移的数据

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

  • Git 源(包括提交历史记录)

  • 拉取请求(包括注释、拉取请求审查、文件和行级别的拉取请求审查注释、所需的审阅者和附件)

    Note

    如果已合并拉取请求并且在迁移前在 Bitbucket 服务器上删除了头部分支,则用户在尝试查看拉取请求时可能会收到 500 错误。 Bitbucket 服务器删除对此类拉取请求对象的特定 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: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 的概述”。