准备 GitHub Enterprise Server 源实例
-
确保您是 GitHub Enterprise Server 源实例的站点管理员。最直接的方式是确认您能够SSH 进入实例。
-
生成访问令牌,并在 GitHub Enterprise Server 源实例上授予
repo和admin:org范围。 -
为将停机时间降至最低,请列出要从源实例导出的仓库。您可以使用文本文件一次性添加多个仓库,文件中每行写入一个仓库的 URL。
导出 GitHub Enterprise Server 源仓库
注意
锁定仓库会阻止对该仓库的所有写操作。锁定后,您无法为仓库关联新的团队或协作者。
如果您正在进行试运行,则无需锁定仓库。当从正在使用的仓库迁移数据时,GitHub 强烈建议锁定该仓库。更多信息请参阅关于 ghe-migrator。
-
SSH 进入 GitHub.com。如果您的实例由多个节点组成,例如已配置高可用或地理复制,请 SSH 进入主节点。若使用集群,则可 SSH 任意节点。将
HOSTNAME替换为实例的主机名,或节点的主机名或 IP 地址。更多信息请参阅访问管理 Shell(SSH)。Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME -
要为导出准备仓库,请使用带有仓库 URL 的
ghe-migrator add命令-
如果要锁定仓库,请在命令后追加
--lock。进行试运行时无需使用--lock。ghe-migrator add https://HOSTNAME/USERNAME/REPO-NAME --lock -
您可以通过在命令后追加
--exclude_attachments来排除文件附件。文件附件可能体积庞大,会不必要地增大最终迁移归档的体积。 -
要一次性为多个仓库准备导出,请创建一个文本文件,每行列出一个仓库的 URL,然后使用带
-i参数和文件路径的ghe-migrator add命令。ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URL.txt
-
-
提示输入时,填写您的 GitHub Enterprise Server 用户名
Enter username authorized for migration: admin -
提示输入个人访问令牌时,填写您在准备 GitHub Enterprise Server 源实例中创建的访问令牌
Enter personal access token: ************** -
当
ghe-migrator add完成后,它将打印出唯一的“Migration GUID”,用于标识本次导出,同时列出已加入导出的资源。稍后在ghe-migrator add与ghe-migrator export步骤中,您需要使用该 Migration GUID,以告知ghe-migrator继续在同一导出上操作。> 101 models added to export > Migration GUID: EXAMPLE-MIGRATION-GUID > Number of records in this migration: > users | 5 > organizations | 1 > repositories | 1 > teams | 3 > protected_branches | 1 > pull_request_reviews | 1 > milestones | 1 > issues | 3 > pull_requests | 5 > pull_request_review_comments | 4 > commit_comments | 2 > issue_comments | 10 > issue_events | 63 > releases | 3 > attachments | 4 > projects | 2每次使用已有的 Migration GUID 添加新仓库时,系统会更新现有的导出。如果在没有提供 Migration GUID 的情况下再次运行
ghe-migrator add,则会启动新的导出并生成新的 Migration GUID。在准备迁移导入时,请勿重复使用导出期间生成的 Migration GUID。 -
若要向同一导出中添加更多仓库,请使用带
-g参数的ghe-migrator add命令,并提供新仓库的 URL 以及步骤 5 中的 Migration GUIDghe-migrator add https://HOSTNAME/USERNAME/OTHER-REPO-NAME -g MIGRATION-GUID --lock -
添加完所有仓库后,使用带
-g参数并指定步骤 5 中 Migration GUID 的ghe-migrator export命令生成迁移归档$ ghe-migrator export -g MIGRATION-GUID > Archive saved to: /data/github/current/tmp/MIGRATION-GUID.tar.gz- 若需指定迁移文件的暂存位置,请在命令后追加
--staging-path=/full/staging/path。默认路径为/data/user/tmp。
- 若需指定迁移文件的暂存位置,请在命令后追加
-
关闭与 GitHub.com 的连接
$ exit > logout > Connection to HOSTNAME closed. -
使用
scp命令将迁移归档复制到本地电脑。归档文件名称将采用 Migration GUID 命名scp -P 122 admin@HOSTNAME:/data/github/current/tmp/MIGRATION-GUID.tar.gz ~/Desktop -
若要为导入 GitHub Enterprise Server 实例准备已归档的迁移数据,请参阅迁移数据到 GitHub Enterprise Server。