跳至主要内容

转移仓库

您可以将仓库转移给其他用户或组织账户。

关于仓库转移

当您将仓库转移给新所有者时,他们可以立即管理仓库的内容、议题、拉取请求、发布、项目和设置。您也可以在转移仓库时更改仓库名称。参见 重命名仓库

仓库转移的先决条件

  • 当您将自己拥有的仓库转移到另一个个人账户时,新所有者会收到确认邮件。确认邮件中包含接受转移的说明。如果新所有者未在一天内接受转移,邀请将失效。
  • 要转移仓库,您必须拥有该仓库的管理员权限。
  • GitHub.com 上的仓库只能转移给 GitHub.com 上的其他所有者。
  • 要将您拥有的仓库转移到组织,您必须拥有在目标组织中创建仓库的权限。
  • 目标账户不能已有同名仓库,或在同一网络中已有该仓库的派生。
  • 原仓库所有者会被添加为转移后仓库的协作者。其他协作者保持不变。
  • 从私有上游网络派生的单个仓库无法转移。

如果您将私有仓库转移给 GitHub 免费用户或组织账户,仓库将失去受保护分支和 GitHub Pages 等功能。更多信息,请参见 GitHub 的套餐

如果转移的仓库包含在 GitHub Marketplace 上列出的操作,或在转移前一周拥有超过 100 次克隆或超过 100 次 GitHub Actions 使用,GitHub 将在您转移仓库时永久退役所有者名称和仓库名称的组合 (OWNER/REPOSITORY-NAME)。如果您尝试使用已退役的所有者名称和仓库名称组合创建仓库,将会看到错误信息:“仓库 REPOSITORY_NAME 已被退役,无法重新使用”。

转移仓库时会带走哪些内容?

当您转移仓库时,其议题、拉取请求、Wiki、星标和关注者也会一起转移。如果转移的仓库包含 webhook、服务、密钥或部署密钥,它们在转移完成后仍会保持关联。关于提交的 Git 信息,包括贡献,都会被保留。此外

  • 如果转移的仓库是派生仓库,则仍会与上游仓库保持关联。

  • 如果转移的仓库有任何派生,它们在转移完成后仍会与该仓库保持关联。

  • 如果转移的仓库使用 Git 大文件存储,所有 Git LFS 对象会自动移动。此转移在后台进行,因此如果您有大量 Git LFS 对象或对象本身很大,转移可能需要一些时间。

  • 当仓库在两个个人账户之间转移时,议题指派保持不变。当您将仓库从个人账户转移到组织时,指派给组织成员的议题保持不变,其他议题指派将被清除。只有组织的所有者可以创建新的议题指派。当您将仓库从组织转移到个人账户时,仅保留指派给仓库所有者的议题,其他议题指派将被移除。

  • 当您将仓库从一个组织转移到另一个组织时,如果新组织拥有匹配的议题类型,议题上的类型将保持不变;其他议题类型将被移除。

  • 当您将仓库从组织转移到个人账户时,所有议题类型都将从议题中移除。

  • 如果转移的仓库包含 GitHub Pages 站点,则指向该仓库的网页链接和 Git 活动链接会被重定向。但我们不会重定向与仓库关联的 GitHub Pages。

  • 所有指向旧仓库位置的链接会自动重定向到新位置。当您对转移后的仓库使用 git clonegit fetchgit push 时,这些命令会重定向到新仓库的位置或 URL。然而,为避免混淆,我们强烈建议您更新所有已有的本地克隆,使其指向新的仓库 URL。您可以在命令行使用 git remote 来完成此操作。

    git remote set-url origin NEW_URL
    

    警告

    如果您在旧仓库位置创建新仓库或派生仓库,指向转移后仓库的重定向将被永久删除。

  • 当您将仓库从组织转移到个人账户时,仓库的只读协作者不会被转移。这是因为协作者不能对个人账户拥有的仓库拥有只读访问权限。有关仓库权限级别的更多信息,请参阅 个人账户仓库的权限级别组织的仓库角色

  • 通过赞助层级获得仓库访问权限的赞助者可能会受到影响。请参阅 管理您的赞助层级

  • 与仓库关联的包可能会被转移,或可能失去与仓库的链接,这取决于它们所属的注册表。请参阅 关于 GitHub 包的权限

请参阅 管理远程仓库

仓库转移与组织

要将仓库转移至组织,您必须拥有在接收组织中创建仓库的权限,以及将仓库从源组织转出的权限。组织或企业所有者可能已设置策略,阻止某些用户执行这些操作。

一旦仓库转移到组织,组织的默认仓库权限设置和默认成员权限将适用于该转移后的仓库。

转移您个人账户拥有的仓库

您可以将仓库转移到任何接受您转移请求的个人账户。当仓库在两个个人账户之间转移时,原仓库所有者和协作者会自动被添加为新仓库的协作者。

如果您在私有仓库中发布了 GitHub Pages 站点并添加了自定义域名,在转移仓库之前,您可能需要删除或更新 DNS 记录,以避免域名被劫持的风险。请参阅 管理 GitHub Pages 站点的自定义域名

  1. 在 GitHub 上,导航至仓库的主页面。

  2. 在仓库名称下,单击 Settings。如果看不到 “Settings” 选项卡,请选择 下拉菜单,然后单击 Settings

    Screenshot of a repository header showing the tabs. The "Settings" tab is highlighted by a dark orange outline.

  3. 在页面底部的 “Danger Zone”(危险区)部分,单击 Transfer(转移)。

  4. 阅读有关转移仓库的信息,然后在 “New owner”(新所有者)下,选择如何指定新所有者。

    • 要选择您的一 个组织,请选择 Select one of my organizations(选择我的一个组织)。

      • 打开下拉菜单并点击某个组织。

      • 可选地,在 “Repository name”(仓库名称)字段中输入仓库的新名称。

        注意

        您必须是目标组织的所有者才能重命名仓库。

    • 若要指定组织或用户名,请选择 Specify an organization or username(指定组织或用户名),然后键入组织名称或新所有者的用户名。

  5. 阅读有关根据新所有者的 GitHub 订阅可能导致功能丢失的警告。

  6. Type REPOSITORY NAME to confirm(输入 REPOSITORY NAME 以确认)后,键入您想转移的仓库名称,然后单击 I understand, transfer this repository(我已了解,转移此仓库)。

转移您组织拥有的仓库

如果您在组织中拥有所有者权限或对其某个仓库拥有管理员权限,您可以将组织拥有的仓库转移到您的个人账户或其他组织。

  1. 登录到您在拥有该仓库的组织中具备管理员或所有者权限的个人账户。

  2. 在 GitHub 上,导航至仓库的主页面。

  3. 在仓库名称下,单击 Settings。如果看不到 “Settings” 选项卡,请选择 下拉菜单,然后单击 Settings

    Screenshot of a repository header showing the tabs. The "Settings" tab is highlighted by a dark orange outline.

  4. 在页面底部的 “Danger Zone”(危险区)部分,单击 Transfer(转移)。

  5. 阅读有关转移仓库的信息,然后在 “New owner”(新所有者)下,选择如何指定新所有者。

    • 要选择您的一 个组织,请选择 Select one of my organizations(选择我的一个组织)。

      • 打开下拉菜单并点击某个组织。

      • 可选地,在 “Repository name”(仓库名称)字段中输入仓库的新名称。

        注意

        您必须是目标组织的所有者才能重命名仓库。

    • 若要指定组织或用户名,请选择 Specify an organization or username(指定组织或用户名),然后键入组织名称或新所有者的用户名。

  6. 阅读有关根据新所有者的 GitHub 订阅可能导致功能丢失的警告。

  7. Type REPOSITORY NAME to confirm(输入 REPOSITORY NAME 以确认)后,键入您想转移的仓库名称,然后单击 I understand, transfer this repository(我已了解,转移此仓库)。

© . This site is unofficial and not affiliated with GitHub, Inc.