{"meta":{"title":"了解从 Azure DevOps 迁移到 GitHub","intro":"GitHub Enterprise Importer可以自动从Azure DevOps迁移。","product":"迁移","breadcrumbs":[{"href":"/zh/enterprise-cloud@latest/migrations","title":"迁移"},{"href":"/zh/enterprise-cloud@latest/migrations/ado","title":"从Azure DevOps迁移"},{"href":"/zh/enterprise-cloud@latest/migrations/ado/understand-migrations-from-azure-devops-to-github","title":"1. 了解迁移"}],"documentType":"article"},"body":"# 了解从 Azure DevOps 迁移到 GitHub\n\nGitHub Enterprise Importer可以自动从Azure DevOps迁移。\n\n## 关于从 Azure DevOps 云迁移\n\n可以使用 GitHub Enterprise Importer 将存储库从 Azure DevOps 迁移到 GitHub Enterprise Cloud（GitHub.com 或 GHE.com）。\n\n只能使用 GitHub Enterprise Importer 从 Azure DevOps Cloud 迁移，而不是从 Azure DevOps Server 迁移。 如果当前使用Azure DevOps Server并且想要迁移到 GitHub，可以先迁移到 Azure DevOps Cloud。 有关详细信息，请参阅 Azure 网站上的 [Migrate 到 Azure DevOps](https://azure.microsoft.com/en-us/services/devops/migrate/)。\n\n在创建企业帐户 GitHub之前，请确定企业是否会使用 Enterprise Managed Users。 这会影响成员进行身份验证的方式以及管理标识和访问的方式。 请参阅“[为 GitHub Enterprise Cloud 选择企业类型](/zh/enterprise-cloud@latest/admin/concepts/enterprise-fundamentals/choose-an-enterprise-type)”。\n\n若要详细了解 GitHub 与 Azure DevOps 之间的差异，请参阅 [Azure DevOps与GitHub之间的主要区别](/zh/enterprise-cloud@latest/migrations/ado/key-differences-between-azure-devops-and-github)。\n\n## 支持Azure Pipelines和Azure Boards\n\nAzure Pipelines 和 Azure Boards 都可以与 GitHub 体验完全集成。 可以配置企业帐户和Azure DevOps，以便继续使用这些服务，同时受益于将存储库托管在 GitHub 上。\n\n如果要将Azure Pipelines迁移到 GitHub Actions，请联系 GitHub 帐户经理。\n\n## 迁移的数据\n\nGitHub Enterprise Importer当前支持将以下存储库数据从 Azure DevOps 迁移到 GitHub Enterprise Cloud。\n\n* Git 源代码（包括提交历史记录）\n* 拉取请求\n* 拉取请求的用户历史记录\n* 拉取请求上的工作项链接\n* 拉取请求上的附件\n* 存储库的分支策略（不包括用户限定的分支策略和跨仓库分支策略）\n\n## 迁移数据的限制\n\n可以迁移的 GitHub Enterprise Importer 是有限的。 有些是由于GitHub的限制，而另一些是GitHub Enterprise Importer本身的限制。\n\n### 局限性GitHub\n\n* **单个 Git 提交的 2 GiB 大小限制：** Git 存储库中的单个提交不能大于 2 GiB。 如果您的任何提交大于 2 GiB，您需要将该提交拆分为每个 2 GiB 或更小的提交。\n* **单个推送的 2 GiB 大小限制：** 单个推送不能大于 2 GiB。 较大的推送失败并出现 `pack exceeds maximum allowed size` 错误。\n* **Git 引用的 255 字节限制：** 任何通常称为“ref”的 Git 引用的名称不能大于 255 字节。 通常，这意味着引用长度不能超过 255 个字符，但任何非 ASCII 字符（如表情符号）可能会使用多个字节。 如果任何 Git 引用太长，将返回明确的错误消息。\n* **100 MiB 文件大小限制：** 完成迁移后，Git 存储库中的单个文件不能大于 100 MiB。 在存储库迁移期间，此限制将增加到 400 MiB。 请考虑用于 Git LFS 存储大型文件。\n\n### 局限性GitHub Enterprise Importer\n\n* Git 存储库的大小限制为 40 GB (公开预览)：此限制仅适用于源代码\\*\\*\\*\\*。 若要检查存储库存档是否超出限制，请使用 [git-sizer](https://github.com/github/git-sizer) 工具并查看输出中的 blob 总大小。 git-sizer 工具还有助于识别与大型文件、blob 大小、提交大小和可能影响迁移的树计数相关的潜在问题。\n* **400 MiB 文件大小限制：** 迁移包含的 GitHub Enterprise Importer存储库时，Git 存储库中的单个文件不能大于 400 MiB。 请考虑使用 Git LFS 来存储大型文件。\n* \\*\\*Git LFS对象未迁移：\\*\\*Importer可以迁移使用Git LFS的存储库，但 LFS 对象本身不会被迁移。 迁移完成后，可以将其作为后续任务推送到迁移目标。\n* 延迟的代码搜索功能：迁移存储库后，重新编制搜索索引可能需要几个小时，在重新编制索引完成前，代码搜索可能会返回意外的结果。\n* 为组织配置的规则集可能会导致迁移失败：例如，如果配置的规则要求提交作者的电子邮件地址以 \\*\\*\\*\\* 结尾，而要迁移的存储库包含不符合此规则的提交，则迁移将失败。\n* **模特内容可能不可搜索**：模特是与导入内容（如问题、拉取请求、注释等）关联的占位符用户。 在搜索与模型关联的内容（例如已分配的事项）时，可能无法找到这些事项。 回收模特后，即可通过新所有者获取内容。"}