Skip to main content

阶段 1。 了解从 Azure DevOps 迁移到 GitHub

GitHub Enterprise Importer 可以自动从 Azure DevOps 进行迁移。

关于从 Azure DevOps Cloud 迁移

可使用 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

在 GitHub 上创建企业帐户之前,决定你的企业是否将使用 Enterprise Managed Users。 这会影响成员进行身份验证的方式以及管理标识和访问的方式。 请参阅“为 GitHub Enterprise Cloud 选择企业类型”。

支持 Azure Pipelines 和 Azure Boards

Azure Pipelines 和 Azure Boards 都可以与你的 GitHub 体验完全集成。 你可以配置企业帐户和 Azure DevOps,以便继续使用这些服务,同时受益于将存储库托管在 GitHub 上。

如果要将 Azure Pipelines 迁移到 GitHub Actions,请联系 GitHub 帐户管理员。

迁移的数据

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

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

迁移数据的限制

GitHub Enterprise Importer 可以迁移的内容存在限制。 有些是由于 GitHub 的限制,而另一些是由于 GitHub Enterprise Importer 本身的限制。

GitHub 的限制

  •         **单个 Git 提交的 2 GiB 大小限制:** Git 存储库中的单个提交不能大于 2 GiB。 如果你的任何提交大于 2 GiB,需要将该提交拆分为多个均不超过 2 GiB 的较小提交。
    
  •         **Git 引用的 255 字节限制:** 任何通常称为“ref”的 Git 引用的名称不能大于 255 字节。 通常,这意味着引用长度不能超过 255 个字符,但任何非 ASCII 字符(如表情符号)可能会使用多个字节。 如果任何 Git 引用太长,将返回明确的错误消息。
    
  •         **100 MiB 文件大小限制:** 完成迁移后,Git 存储库中的单个文件不能大于 100 MiB。 在存储库迁移期间,此限制将增加到 400 MiB。 请考虑使用 Git LFS 来存储大型文件。
    

GitHub Enterprise Importer 的限制

  • Git 存储库的大小限制为 40 GB (公共预览版):此限制仅适用于源代码****。 若要检查存储库存档是否超出限制,请使用 git-sizer 工具并查看输出中的 blob 总大小。 git-sizer 工具还有助于识别与大型文件、blob 大小、提交大小和可能影响迁移的树计数相关的潜在问题。
  • 400 MiB 文件大小限制:使用 GitHub Enterprise Importer 迁移存储库时,Git 存储库中的单个文件大小不能超过 400 MiB****。 请考虑使用 Git LFS 来存储大型文件。
  •           **未迁移的 Git LFS 对象:**Importer 可以迁移使用 Git LFS 的存储库,但 LFS 对象本身不会被迁移。 迁移完成后,可以将其作为后续任务推送到迁移目标。
    
  • 延迟的代码搜索功能:迁移存储库后,重新编制搜索索引可能需要几个小时,在重新编制索引完成前,代码搜索可能会返回意外的结果。
  • 为组织配置的规则集可能会导致迁移失败:例如,如果配置的规则要求提交作者的电子邮件地址以 **** 结尾,而要迁移的存储库包含不符合此规则的提交,则迁移将失败。
  •         **模特内容可能不可搜索**:模特是与导入内容(如问题、拉取请求、注释等)关联的占位符用户。 在搜索与模型关联的内容(例如已分配的事项)时,可能无法找到这些事项。 回收模特后,通过新所有者可找到内容。
    

后续步骤

在下一篇文章中,你将决定谁来执行迁移,并准备好对 Azure DevOps 和 GitHub Enterprise Cloud 的访问权限。 请参阅“阶段 2。 管理访问权限”。