# 关于 ghe-migrator

可用于 ghe-migrator 将数据从 源 位置（ GitHub.com 组织或 GitHub Enterprise Server 实例）传输到 目标GitHub Enterprise Server 实例。

## 迁移的类型

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

* 从 GitHub Enterprise Server 实例迁移到另一个现有 GitHub Enterprise Server 实例。 您可以迁移实例上由任何用户或组织拥有的任意数量的仓库。 在执行迁移之前，您必须具有两个实例的站点管理员访问权限。
* 从 GitHub.com 组织迁移到 GitHub Enterprise Server 实例。 您可以迁移由组织拥有的任意数量的仓库。 在执行迁移之前，必须具有对[](/zh/enterprise-server@3.22/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)组织的GitHub.com，以及对目标实例的站点管理员访问权限。
* “试运行”是将数据导入\_暂存实例\_的迁移。 这些内容可用于查看如果将迁移应用到\_\_，你的 GitHub Enterprise Server 实例发生什么。 强烈建议你先在暂存实例上执行试运行，然后再将数据导入生产实例。

> \[!NOTE]
> **不建议**使用 ghe-migrator 在虚拟机监控程序之间传输 GitHub Enterprise Server 实例。 相反，我们建议使用 GitHub Enterprise Server Backup Utilities 备份并还原到新位置，或在新位置创建副本然后故障转移到该副本设备。 有关详细信息，请参阅“[关于 GitHub Enterprise Server 的备份服务](/zh/enterprise-server@3.22/admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance)”、“[创建高可用性副本](/zh/enterprise-server@3.22/admin/monitoring-and-managing-your-instance/configuring-high-availability/creating-a-high-availability-replica)”和“[发起到副本设备的故障转移](/zh/enterprise-server@3.22/admin/monitoring-and-managing-your-instance/configuring-high-availability/initiating-a-failover-to-your-replica-appliance)”。

## 迁移的数据

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

下表中的项可随仓库一起迁移。 迁移数据列表中未显示的任何项都无法迁移，包括 Git LFS 资产。

> \[!NOTE]
> 分支关系在迁移后不会持续。

| 与迁移的仓库关联的数据                                                                                                                                        | 备注                                                            |
| -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| 用户                                                                                                                                                 |                                                               |
| \*\*                                                                                                                                               |                                                               |
| @mentions              将重写用户的 \*\*，使其与目标匹配。                                                                                                        |                                                               |
| 组织                                                                                                                                                 | 将组织的名称和详细信息迁移。                                                |
| 存储库                                                                                                                                                | Git 树、Blob 对象、提交记录和行的链接地址将被重写以与目标相匹配。 内部存储库迁移为私有存储库。 存档状态未设置。 |
| 维基                                                                                                                                                 | 将迁移所有 wiki 数据。                                                |
| Teams                                                                                                                                              |                                                               |
| \*\*                                                                                                                                               |                                                               |
| @mentions              将重写团队的 \*\*，使其与目标匹配。                                                                                                        |                                                               |
| 里程碑                                                                                                                                                | 将保留时间戳。                                                       |
| 问题                                                                                                                                                 | 将保留问题引用和时间戳。                                                  |
| 问题评论                                                                                                                                               | 评论中的交叉引用已针对目标实例进行重写。                                          |
| 拉取请求                                                                                                                                               | 将重写拉取请求的交叉引用以匹配目标。 将保留时间戳。                                    |
| 拉取请求审查                                                                                                                                             | 拉取请求审查和关联的数据将被迁移。                                             |
| 拉取请求审查评论                                                                                                                                           | 评论中的交叉引用已针对目标实例进行重写。 将保留时间戳。 文件级注释不会被迁移。                      |
| 提交注释                                                                                                                                               | 评论中的交叉引用已针对目标实例进行重写。 将保留时间戳。                                  |
| 发布                                                                                                                                                 | 所有版本数据已迁移。                                                    |
| 在拉取请求或问题上进行的操作                                                                                                                                     | 将保留对拉取请求或问题的所有修改（例如，分配用户、重命名标题和修改标签）以及每个操作的时间戳。               |
| 文件附件                                                                                                                                               |                                                               |
| [议题和拉取请求中的文件附件](/zh/enterprise-server@3.22/get-started/writing-on-github/working-with-advanced-formatting/attaching-files)将得到迁移。 在迁移过程中，您可以选择将此禁用。 |                                                               |
| Webhook                                                                                                                                            | 仅迁移有效的 web 挂钩。                                                |
| 仓库部署密钥                                                                                                                                             | 仓库部署密钥已迁移。                                                    |
| 受保护的分支                                                                                                                                             | 将迁移受保护分支设置和关联的数据。                                             |

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

如果迁移的源位置是 GitHub 使用 LDAP 或 SAML 身份验证的产品， `ghe-migrator` 则不会迁移链接到用户帐户的外部身份验证数据。 有关身份验证选项的详细信息，请参阅 [GitHub Enterprise Server 文档](/zh/enterprise-server@3.22/admin/concepts/identity-and-access-management/identity-and-access-management-fundamentals) 或 [GitHub Enterprise Cloud 文档](/zh/enterprise-cloud@latest/admin/concepts/identity-and-access-management/identity-and-access-management-fundamentals)中的“关于企业身份验证”。

如果迁移到目标实例，然后配置外部身份验证，用户必须使用与源实例上的帐户具有相同用户名或用户 ID 的用户帐户登录到目标实例。 管理员可以查看实例用来映射来自 管理控制台 的用户帐户名的外部属性。 有关详细信息，请参阅“[访问管理控制台](/zh/enterprise-server@3.22/admin/administering-your-instance/administering-your-instance-from-the-web-ui/accessing-the-management-console)”。