跳至主要内容

关于从 Azure DevOps 迁移到 GitHub Enterprise Cloud

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

关于从 Azure DevOps 迁移

您可以使用 GitHub Enterprise Importer 将存储库从 Azure DevOps 迁移到 GitHub Enterprise Cloud(GitHub.com 或 GHE.com)。

您只能使用 GitHub Enterprise Importer 从 Azure DevOps Cloud 迁移,不能从 Azure DevOps Server 迁移。如果您目前使用 Azure DevOps Server 并希望迁移到 GitHub,您可以先迁移到 Azure DevOps Cloud。有关更多信息,请参阅 Azure 网站上的迁移到 Azure DevOps

迁移的数据

我们目前仅支持将以下存储库数据从 Azure DevOps 迁移到 GitHub Enterprise Cloud。

  • Git 源代码(包括提交历史记录)
  • 拉取请求
  • 拉取请求的用户历史记录
  • 拉取请求上的工作项链接
  • 拉取请求上的附件
  • 存储库的分支策略(不包括用户范围的分支策略和跨存储库的分支策略)

如果您想将 Azure Pipelines 迁移到 GitHub Actions,请联系您的 GitHub 账户经理。

迁移数据的限制

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 回收虚拟用户”。

入门

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

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