跳至主要内容

关于 fork

分支是一个新代码库,它与原始“上游”代码库共享代码和可见性设置。

关于分支

分支允许您对项目进行更改,而不会影响原始代码库,也称为“上游”代码库。在分支代码库后,您可以从上游代码库获取更新,以使您的分支保持最新,并且您可以使用拉取请求从您的分支向“上游”代码库提出更改。分支可以由个人帐户或组织拥有。

当您在 GitHub 上查看分支代码库时,上游代码库会显示在分支名称的下方。

Screenshot of a repository's page on GitHub. Below the name of the repository, "mona/docs", the text "forked from github/docs" is outlined in orange.

在开源项目中,分支通常用于在将更改合并到上游代码库之前对想法或更改进行迭代。如果您将公共代码库分支到您的个人帐户,进行更改,然后打开一个拉取请求以向“上游”代码库提出更改,您可以授予对“上游”代码库拥有推送权限的任何人将更改推送到您的拉取请求分支(包括删除分支)。这通过允许代码库维护人员在合并之前从用户拥有的分支对您的拉取请求分支进行本地提交或运行测试,从而加快了协作。您不能授予对由组织拥有的分支的推送权限。有关更多信息,请参阅“允许对从分支创建的拉取请求分支进行更改”。

删除分支不会删除原始的上游代码库。您可以对您的分支进行任何您想要的更改,而不会对上游产生任何影响。例如,您可以在分支上添加合作者、重命名文件或生成 GitHub Pages,而不会影响上游。在分支被删除后,您无法恢复分支。有关更多信息,请参阅“恢复已删除的代码库”。如果您删除一个私有代码库,则该代码库的所有分支都将被删除。

您可以在代码库的分支页面上查看、排序和筛选代码库的分支。有关更多信息,请参阅“了解代码库之间的连接”。

关于创建分支

您可以将任何公共存储库分叉到您的个人帐户,或分叉到您有权创建存储库的组织。如果您有权访问私有存储库,并且所有者允许分叉,您可以将存储库分叉到您的个人帐户,或分叉到您有权创建存储库的 GitHub Team 中的组织。您无法使用 GitHub Free 将私有存储库分叉到组织。有关 GitHub Team 和 GitHub Free 的更多信息,请参阅“GitHub 的计划”。

有关分叉存储库的说明,请参阅“分叉存储库”。有关何时可以创建分叉,以及分叉的权限和可见性设置的更多信息,请参阅“关于分叉的权限和可见性”。

提示:您可以使用 GitHub Desktop 分叉存储库。有关更多信息,请参阅“从 GitHub Desktop 克隆和分叉存储库”。

分叉存储库与复制存储库

如果您想从现有存储库的内容中创建新存储库,但不想将来将您的更改合并到上游,您可以复制存储库,或者,如果存储库是模板,您可以将存储库用作模板。有关更多信息,请参阅“复制存储库”和“从模板创建存储库”。

分叉存储库类似于复制存储库,但有以下区别。

  • 您可以使用拉取请求建议从您的分叉到上游存储库的更改。
  • 您可以通过将您的分叉与上游存储库同步,将上游存储库的更改带到您的分叉。
  • 分叉有自己的成员、分支、标签、标签、策略、问题、拉取请求、讨论、操作、项目和 wiki。
  • 分支继承其上游存储库的限制。例如,如果上游存储库属于 GitHub 免费计划中的某个组织,则无法向下传递分支保护规则。

延伸阅读