关于仓库转移
当您将仓库转移到新的所有者时,他们可以立即管理仓库的内容、问题、拉取请求、发布、项目(经典)和设置。您还可以在转移仓库时更改仓库名称。请参阅“重命名仓库”。
仓库转移的先决条件
- 当您将自己拥有的仓库转移到另一个个人帐户时,新所有者将收到一封确认电子邮件。确认电子邮件包含接受转移的说明。如果新所有者在一整天内未接受转移,则邀请将过期。
- 要转移仓库,您必须对该仓库具有管理员访问权限。
- GitHub.com 上的仓库只能转移到 GitHub.com 上的其他所有者。
- 要将您拥有的仓库转移到组织,您必须有权在目标组织中创建仓库。
- 目标帐户不得具有名称相同或在同一网络中存在分支的仓库。
- 仓库的原始所有者将被添加为转移仓库的协作者。转移仓库的其他协作者将保持不变。
- 从私有上游网络分叉的单个仓库无法转移。
如果您将私有仓库转移到 GitHub 免费用户或组织帐户,则仓库将失去对受保护分支和 GitHub Pages 等功能的访问权限。有关更多信息,请参阅“GitHub 的套餐”。
如果转移的仓库包含 GitHub Marketplace 上列出的操作,或在转移前一周内克隆次数超过 100 次或 GitHub Actions 使用次数超过 100 次,则在您转移仓库时,GitHub 会永久停用所有者名称和仓库名称组合 (OWNER/REPOSITORY-NAME
)。如果您尝试使用已停用的所有者名称和仓库名称组合创建仓库,您将看到错误:“仓库 REPOSITORY_NAME
已停用且无法重用”。
仓库转移的内容?
当您转移仓库时,其问题、拉取请求、Wiki、星标和关注者也会被转移。如果转移的仓库包含 Webhook、服务、机密或部署密钥,则它们在转移完成后将保持关联。关于提交的 Git 信息(包括贡献)将被保留。此外
-
如果转移的仓库是分叉仓库,则它将与上游仓库保持关联。
-
如果转移的仓库有任何分叉仓库,则这些分叉仓库在转移完成后将与该仓库保持关联。
-
如果转移的仓库使用 Git Large File Storage,则所有 Git LFS 对象都会自动移动。此转移在后台进行,因此,如果您有大量 Git LFS 对象或 Git LFS 对象本身很大,则转移可能需要一些时间。在转移使用 Git LFS 的仓库之前,请确保接收帐户有足够的数据包来存储您要移动的 Git LFS 对象。有关为个人帐户添加存储空间的更多信息,请参阅“升级 Git Large File Storage”。
-
当仓库在两个个人帐户之间转移时,问题分配将保持不变。当您将仓库从个人帐户转移到组织时,分配给组织中成员的问题将保持不变,所有其他问题分配者将被清除。只有组织中的所有者才能创建新的问题分配。当您将仓库从组织转移到个人帐户时,只有分配给仓库所有者的问题才会保留,所有其他问题分配者都将被删除。
-
如果转移的仓库包含 GitHub Pages 站点,则指向 Web 上和通过 Git 活动指向 Git 仓库的链接将被重定向。但是,我们不会重定向与仓库关联的 GitHub Pages。
-
所有指向先前仓库位置的链接都会自动重定向到新位置。当您在转移的仓库上使用
git clone
、git fetch
或git push
时,这些命令将重定向到新的仓库位置或 URL。但是,为避免混淆,我们强烈建议更新任何现有的本地克隆以指向新的仓库 URL。您可以使用命令行上的git remote
来执行此操作git remote set-url origin NEW_URL
警告
如果您在以前的仓库位置创建新的仓库或分叉仓库,则指向转移仓库的重定向将被停用。可以通过重命名或删除新仓库或分叉仓库来重新激活它们。
-
当您将仓库从组织转移到个人帐户时,仓库的只读协作者将不会被转移。这是因为协作者无法对个人帐户拥有的仓库具有只读访问权限。有关仓库权限级别的更多信息,请参阅“个人帐户仓库的权限级别”和“组织的仓库角色”。
-
通过赞助层级访问仓库的赞助商可能会受到影响。请参阅“管理您的赞助层级”。
-
与仓库关联的软件包可能会被转移,或者可能会失去与其仓库的链接,具体取决于它们所属的注册表。请参阅“关于 GitHub Packages 的权限”。
请参阅“管理远程仓库”。
仓库转移和组织
要将仓库转移到组织,您必须在接收组织中拥有仓库创建权限。如果组织所有者已禁用组织成员创建仓库,则只有组织所有者才能将仓库转移到组织内部或外部。
仓库转移到组织后,组织的默认仓库权限设置和默认成员权限将应用于转移的仓库。
转移个人帐户拥有的仓库
您可以将您的仓库转移到任何接受您仓库转移的个人帐户。当仓库在两个个人帐户之间转移时,原始仓库所有者和协作者将自动被添加为新仓库的协作者。
如果您在私有仓库中发布了 GitHub Pages 站点并添加了自定义域名,则在转移仓库之前,您可能需要删除或更新您的 DNS 记录以避免域名接管的风险。请参阅“管理 GitHub Pages 站点的自定义域名”。
-
在 GitHub 上,导航到仓库的主页。
-
在您的仓库名称下,单击 设置。如果您看不到“设置”选项卡,请选择下拉菜单,然后单击设置。
-
在页面底部,“危险区域”部分中,单击转移。
-
阅读有关转移仓库的信息,然后在“新所有者”下,选择如何指定新所有者。
-
要选择您的组织之一,请选择选择我的组织之一。
-
选择下拉菜单并单击一个组织。
-
或者,在“仓库名称”字段中,为仓库键入新名称。
注意
您必须是目标组织的所有者才能重命名仓库。
-
-
要指定组织或用户名,请选择指定组织或用户名,然后键入组织名称或新所有者的用户名。
-
-
阅读有关根据新所有者的 GitHub 订阅可能导致的功能丢失的警告。
-
在键入仓库名称以确认之后,键入您要转移的仓库的名称,然后单击我已了解,转移此仓库。
转移组织拥有的仓库
如果您在组织中拥有所有者权限或对其中一个仓库拥有管理员权限,则可以将组织拥有的仓库转移到您的个人帐户或另一个组织。
-
登录到您在拥有该仓库的组织中具有管理员或所有者权限的个人帐户。
-
在 GitHub 上,导航到仓库的主页。
-
在您的仓库名称下,单击 设置。如果您看不到“设置”选项卡,请选择下拉菜单,然后单击设置。
-
在页面底部,“危险区域”部分中,单击转移。
-
阅读有关转移仓库的信息,然后在“新所有者”下,选择如何指定新所有者。
-
要选择您的组织之一,请选择选择我的组织之一。
-
选择下拉菜单并单击一个组织。
-
或者,在“仓库名称”字段中,为仓库键入新名称。
注意
您必须是目标组织的所有者才能重命名仓库。
-
-
要指定组织或用户名,请选择指定组织或用户名,然后键入组织名称或新所有者的用户名。
-
-
阅读有关根据新所有者的 GitHub 订阅可能导致的功能丢失的警告。
-
在键入仓库名称以确认之后,键入您要转移的仓库的名称,然后单击我已了解,转移此仓库。