Preparing the GitHub Enterprise Server source instance
-
Verify that you are a site administrator on the GitHub Enterprise Server source. The best way to do this is to verify that you can SSH into the instance.
-
生成具有
repo
和admin:org
作用域的访问令牌 on the GitHub Enterprise Server source instance. -
为尽量减少停机,请创建要从源实例导出的仓库列表。 您可以使用每行列出一个仓库 URL 的文本文件一次性导出多个仓库。
Exporting the GitHub Enterprise Server source repositories
注意:锁定存储库会阻止对存储库的所有写入访问。 您不能将新团队或协作者与锁定的仓库相关联。
如果您执行的试用版,则� 需锁定仓库。 从正在使用的存储库迁移数据时,GitHub 强烈建议锁定存储库。 有关详细信息,请参阅“关于迁移”。
-
SSH into your GitHub Enterprise Server instance. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "Accessing the administrative shell (SSH)."
$ ssh -p 122 admin@HOSTNAME
-
To prepare a repository for export, use the
ghe-migrator add
command with the repository's URL:- If you're locking the repository, append the command with
--lock
. If you're performing a trial run,--lock
is not needed.$ ghe-migrator add https://HOSTNAME/USERNAME/REPO-NAME --lock
- You can exclude file attachments by appending
--exclude_attachments
to the command. 文件附件可能很大,可能不必要地胀大您的最终迁移存档。 - To prepare multiple repositories at once for export, create a text file listing each repository URL on a separate line, and run the
ghe-migrator add
command with the-i
flag and the path to your text file.$ ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URL.txt
- If you're locking the repository, append the command with
-
When prompted, enter your GitHub Enterprise Server username:
Enter username authorized for migration: admin
-
When prompted for a personal access token, enter the access token you created in "Preparing the GitHub Enterprise Server source instance":
Enter personal access token: **************
-
When
ghe-migrator add
has finished it will print the unique "Migration GUID" that it generated to identify this export as well as a list of the resources that were added to the export. You will use the Migration GUID that it generated in subsequentghe-migrator add
andghe-migrator export
steps to tellghe-migrator
to continue operating on the same export.> 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
Each time you add a new repository with an existing Migration GUID it will update the existing export. If you run
ghe-migrator add
again without a Migration GUID it will start a new export and generate a new Migration GUID. Do not re-use the Migration GUID generated during an export when you start preparing your migration for import. -
If you locked the source repository, you can use the
ghe-migrator target_url
command to set a custom lock message on the repository page that links to the repository's new location. Pass the source repository URL, the target repository URL, and the Migration GUID from Step 5:$ ghe-migrator target_url https://HOSTNAME/USERNAME/REPO-NAME https://TARGET-HOSTNAME/TARGET-USER-NAME/TARGET-REPO-NAME -g MIGRATION-GUID
-
To add more repositories to the same export, use the
ghe-migrator add
command with the-g
flag. You'll pass in the new repository URL and the Migration GUID from Step 5:$ ghe-migrator add https://HOSTNAME/USERNAME/OTHER-REPO-NAME -g MIGRATION-GUID --lock
-
When you've finished adding repositories, generate the migration archive using the
ghe-migrator export
command with the-g
flag and the Migration GUID from Step 5:$ 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
。
- 要指定迁移文件的暂存位置,请在命令后附�
-
Close the connection to your GitHub Enterprise Server instance:
$ exit > logout > Connection to HOSTNAME closed.
-
Copy the migration archive to your computer using the
scp
command. The archive file will be named with the Migration GUID:$ scp -P 122 admin@HOSTNAME:/data/github/current/tmp/MIGRATION-GUID.tar.gz ~/Desktop
-
若要准备存档的迁移数据以导入到 GitHub Enterprise Server 实例中,请参阅“准备将数据迁移到企业”。