跳至主要内容

关于分叉的权限和可见性

分叉的权限和可见性取决于上游仓库是公开还是私有,以及它是否由组织拥有。

关于创建分叉的权限

您可以分叉任何公开仓库

  • 到您的个人账户
  • 到您有权限创建仓库的组织

如果您有私有仓库的访问权限且所有者允许分叉,您可以分叉该仓库

  • 到您的个人账户
  • 到您在 GitHub Team 中有创建仓库权限的组织

您无法使用 GitHub Free 将私有仓库分叉到组织。有关 GitHub Team 和 GitHub Free 的更多信息,请参阅 GitHub 计划

  • 如果您分叉属于个人账户的私有仓库,外部协作者也将获得对该分叉的访问权限。
  • 如果您分叉属于组织的私有仓库,组织内的团队将获得对该分叉的访问权限,但外部协作者则没有。
  • 如果您是组织所有者,或者您的组织允许仓库管理员邀请外部协作者,并且该外部协作者也有对上游仓库的访问权限,则可以向组织拥有的私有仓库分叉添加外部协作者。

如果您是拥有受管用户的企业成员,对您可以分叉的仓库还有进一步限制。有关更多信息,请参阅 GitHub Enterprise Cloud 文档中的 关于企业受管用户

组织可以允许或阻止对其拥有的任何私有仓库进行分叉。有关更多信息,请参阅 管理组织的分叉策略

关于分叉的可见性

分叉是一个新的仓库,它与上游仓库共享代码和可见性设置。所有公开仓库的分叉都是公开的。您无法更改分叉的可见性。

所有仓库都属于一个仓库网络。仓库网络包含上游仓库、上游仓库的直接分叉以及这些分叉的所有分叉。网络中的所有分叉具有相同的可见性设置。欲了解更多信息,请参阅 理解仓库之间的关联

如果您删除仓库或更改仓库的可见性设置,您将影响该仓库的分叉。欲了解更多信息,请参阅 当仓库被删除或更改可见性时分叉会怎样?

如果您删除分叉,该分叉的任何代码贡献仍可在仓库网络中访问。

关于分叉的权限

私有分叉继承上游仓库的权限结构。这帮助私有仓库的所有者保持对代码的控制。例如,如果上游仓库是私有的并且授予团队读/写访问权限,则相同的团队对该私有上游仓库的任何分叉也拥有读/写访问权限。只有团队权限(而非个人权限)会被私有分叉继承。

注意

当您更改组织的基础权限时,私有分叉的权限不会自动更新。欲了解更多信息,请参阅 为组织设置基础权限

公开分叉不会继承上游仓库的权限结构。

当您将公开仓库分叉到个人账户时,您可以允许仓库维护者向您的拉取请求分支推送。这包括授予他们提交更改或删除分支的权限。

这通过让维护者

  • 直接提交到您的分支
  • 在合并前在本地运行测试 您不能向组织拥有的分叉授予推送权限。

欲了解更多信息,请参阅 允许对从分叉创建的拉取请求分支进行更改

关于分叉仓库的推送规则集

推送规则适用于仓库的整个分叉网络,确保对仓库的每个入口点均受保护。例如,如果您分叉了已启用推送规则集的仓库,则相同的推送规则集也会应用于您的分叉仓库。

对于分叉仓库,唯一拥有推送规则绕过权限的人是根仓库中拥有绕过权限的人。

欲了解更多信息,请参阅 关于规则集

重要的安全注意事项

如果您使用分叉,或者您是允许分叉的仓库或组织的所有者,请务必注意以下安全事项。

  • 分叉拥有独立于上游仓库的权限。
  • 已被分叉的仓库的所有者对该仓库网络中的所有分叉拥有读取权限。
  • 已被分叉的仓库的组织所有者对在个人用户命名空间中创建的分叉拥有管理员权限,包括删除该分叉及其分支的能力。
  • 已被分叉的仓库的组织所有者对在组织中创建的分叉拥有读取权限,但没有删除该分叉或其分支的能力。
  • 在另一个组织中创建的分叉在从上游仓库移除个人访问时不会被删除。
  • 网络中任何仓库的提交都可以从同一网络的任何仓库访问,包括上游仓库,即使分叉已被删除。

关于组织内部的分叉

同一组织内的分叉会复制其上游仓库的协作者和团队设置。如果仓库归组织所有,

  • 该组织控制其分叉的权限。
  • 上游权限结构中存在且在目标组织或用户命名空间中可见的任何团队,其权限将被复制。
  • 管理员权限仍保留给上游所有者,除非用户将仓库分叉到不同的组织。
  • 如果该仓库被分叉到用户命名空间,组织保持管理员权限,且任何拥有访问权限的团队仍保有访问权限。
© . This site is unofficial and not affiliated with GitHub, Inc.