跳至主要内容

关于 ghe-migrator

您可以使用 `ghe-migrator` 将数据从位置(GitHub.com 组织或 GitHub Enterprise Server 实例)迁移到目标 GitHub Enterprise Server 实例。

迁移类型

您可以执行三种类型的迁移

  • 从一个 GitHub Enterprise Server 实例迁移到另一个现有的 GitHub Enterprise Server 实例。您可以迁移实例上任何用户或组织拥有的任意数量的仓库。执行迁移之前,您必须同时拥有两个实例的站点管理员访问权限。
  • 从 GitHub.com 组织迁移到 GitHub Enterprise Server 实例。您可以迁移组织拥有的任意数量的仓库。执行迁移之前,您必须对 GitHub.com 组织具有管理员访问权限,并且对目标实例具有站点管理员访问权限。
  • 试运行是指将数据导入暂存实例的迁移。这有助于了解将迁移应用于 GitHub.com 时会发生什么情况。我们强烈建议您在将数据导入生产实例之前,先在暂存实例上进行试运行。

注意

不建议使用 ghe-migrator 在虚拟机之间传输 GitHub Enterprise Server 实例。我们建议使用 GitHub Enterprise Server 备份实用程序进行备份和还原到新位置,或者在新位置创建副本,然后故障转移到副本设备。有关更多信息,请参阅“配置实例上的备份”、“创建高可用性副本”和“启动到副本设备的故障转移”。

迁移的数据

使用 ghe-migrator,一切围绕仓库展开。大多数与仓库关联的数据都可以迁移。例如,组织内的仓库将迁移仓库和组织,以及与仓库关联的任何用户、团队、问题和拉取请求。

下表中的项目可以与仓库一起迁移。列表中未显示的任何未迁移数据项目都不能迁移,包括 Git LFS 资源。

注意

迁移后,分叉关系将不再保留。

与迁移的仓库关联的数据说明
用户用户的@提及将被改写以匹配目标。
组织组织的名称和详细信息将被迁移。
仓库Git 树、Blob、提交和代码行的链接将被改写以匹配目标实例。内部仓库将迁移为私有仓库。存档状态将被清除。
Wiki所有 Wiki 数据都将被迁移。
团队团队的@提及将被改写以匹配目标实例。
里程碑时间戳将被保留。
项目 (经典) 看板与仓库以及拥有该仓库的组织关联的项目 (经典) 将被迁移。全新项目体验的项目不受支持。
问题问题引用和时间戳将被保留。
问题评论对评论的交叉引用将被改写以匹配目标实例。
拉取请求对拉取请求的交叉引用将被改写以匹配目标实例。时间戳将被保留。
拉取请求审查拉取请求审查及其关联数据将被迁移。
拉取请求审查评论对评论的交叉引用将被改写以匹配目标实例。时间戳将被保留。文件级别的评论不会被迁移。
提交评论对评论的交叉引用将被改写以匹配目标实例。时间戳将被保留。
发布所有发布数据都将被迁移。
对拉取请求或问题的操作所有对拉取请求或问题的修改,例如分配用户、重命名标题和修改标签,都将被保留,以及每个操作的时间戳。
文件附件问题和拉取请求上的文件附件 将被迁移。您可以在迁移过程中选择禁用此功能。
Webhooks仅迁移活动的 Webhooks。
仓库部署密钥仓库部署密钥将被迁移。
受保护的分支受保护分支设置及其关联数据将被迁移。

关于外部身份验证数据迁移

如果迁移的源位置是使用 LDAP 或 SAML 身份验证的 GitHub 产品,则ghe-migrator不会迁移与用户帐户关联的外部身份验证数据。有关身份验证选项的更多信息,请参阅 GitHub Enterprise Server,“在 GitHub Enterprise Server 文档中查看“关于企业身份验证””GitHub Enterprise Server 文档”或GitHub Enterprise Cloud 文档

如果您迁移到目标实例,然后配置外部身份验证,则用户必须使用与源实例上的帐户具有相同用户名或用户 ID 的用户帐户登录到目标实例。管理员可以从管理控制台中查看实例用于映射用户帐户名称的外部属性。有关详细信息,请参阅“访问管理控制台”。