# 关于分叉

使用分支在自己的存储库副本中进行更改，并将它们建议回原始项目。

派生是你拥有的存储库副本，它与原始存储库相连，而该原始存储库称为上游存储库。 分叉允许你在自己的空间中进行更改，而不会影响上游项目，并通过拉取请求来提出这些更改。

## 为何使用分叉

分叉使你能够独立地工作，同时与原始项目保持连接。 需要以下情况时，分叉非常有用：

* 为您没有写入权限的项目做贡献。
* 在不影响上游仓库的情况下尝试更改。
* 探索以后可能变得独立的新方向。
* 将自己的分支、问题和拉取请求与上游项目分开。

## 派生和分支

分叉和分支都为你提供了一个处理更改的位置，但它们的工作方式不同：

* **分支**位于单个存储库中。 当你在共享仓库中协作并且拥有写入权限时，请使用分支。
* **复刻**是一个独立的存储库，拥有自己的设置、权限和协作空间。 当需要独立于上游存储库或没有写入访问权限时，请使用分支。

由于分支是其自己的存储库，因此它提供比分支更多的独立性。 由于它始终连接到上游存储库，因此更改仍可以通过拉取请求流回。

## 分支如何连接到上游存储库

分支将其历史记录与上游存储库共享，因此两个分支可以通过拉取请求交换更改。 分支还具有自己的可见性和权限，这些可见性和权限绑定到上游存储库及其所属的存储库网络。

对于大多数贡献者来说，这种关联通常是在后台进行的：你复刻一个仓库，在自己的副本中进行修改，并在准备好提出更改时发起拉取请求。

## 延伸阅读

* [为存储库创建分支](/zh/enterprise-cloud@latest/pull-requests/how-tos/work-with-forks/fork-a-repo)
* [Writing code for a project](/zh/enterprise-cloud@latest/pull-requests/concepts/writing-code-for-a-project)
* [叉子](/zh/enterprise-cloud@latest/pull-requests/reference/forks)