了解分叉工作流

已完成

分叉工作流与其他常见的 Git 工作流完全不同。

它为每位开发人员都提供一个服务器端存储库,而不是使用一个服务器端存储库充当“集中”代码库。

这意味着每个参与者都有两个 Git 存储库:

  • 一个专用本地 Git 存储库。
  • 一个公共服务器端 Git 存储库。

分叉工作流最常在公共开源项目中使用。

分叉工作流的主要优势是可以集成参与者的贡献,无需每个人都推送到一个中央存储库。

开发人员推送到他们的服务器端存储库,只有项目维护人员可推送到官方存储库中。

这样,维护人员可接收来自任何开发人员的提交内容,但不向他们授予对官方代码库的写入访问权限。

分支工作流通常用于合并到原始项目维护者的存储库中。

结果是出现一个分布式工作流,它使有组织的大型团队(包括不受信任的第三方)可灵活地安全协作。

这也使其成为开源项目的理想工作流。

工作原理

正如在其他 Git 工作流中一样,分叉工作流从服务器上存储的一个官方公共存储库开始。

当新的开发人员想要开始处理项目时,他们不会直接克隆官方存储库。

相反,他们会分支官方存储库,以在服务器上创建其副本。

此新副本充当其个人公共存储库 - 其他开发人员无法推送到它,但他们可以从中拉取更改(稍后我们将了解此操作必要的原因)。

创建服务器端副本后,开发人员会执行 git 克隆操作,将其复制到本地计算机上。

就像在其他工作流中一样,这充当他们的专用开发环境。

他们在准备好发布本地提交时,会将该提交推送到他们的公共存储库,而不是官方存储库中。

然后,他们向主存储库提交拉取请求,这会让项目维护程序知道可以集成更新。

如果贡献的代码存在问题,为了方便,拉取请求也可用作讨论线程。

下面是此工作流的分步示例:

  • 开发人员分叉一个官方服务器端存储库。 它会创建其服务器端副本。
  • 新的服务器端副本将克隆到其本地系统。
  • 官方存储库的 Git 远程路径将添加到本地克隆。
  • 将创建一个新的本地功能分支。
  • 开发人员对新分支进行更改。
  • 为更改创建新提交。
  • 分支将推送到开发人员的服务器端副本。
  • 开发人员打开一个从新分支到官方存储库的拉取请求。
  • 拉取请求获得批准以用于合并,然后合并到原始服务器端存储库中。

若要将此功能集成到官方代码库中:

  • 维护者将参与者的更改拉取到其本地存储库中。
  • 进行检查以确保它不会中断项目。
  • 将其合并到其本地主分支中。
  • 将主分支推送到服务器上的官方存储库。

参与者的贡献现在是项目的一部分,其他开发人员应从官方存储库拉取以同步其本地存储库。

必须了解,分支工作流中官方存储库的概念只是一种约定。

官方存储库之所以是官方存储库,唯一条件就是它是项目维护者的存储库。

分叉与克隆

必须注意,分叉存储库和分支行为不是特殊操作。

分叉存储库是使用标准 git 克隆命令创建的。 分叉存储库通常由 Git 服务提供商(如 Azure Repos)进行服务器端克隆的管理和托管。

没有用于创建分叉存储库的唯一 Git 命令。

克隆操作实质上是对存储库及其历史记录进行复制。