了解分叉工作流

已完成

分叉工作流与其他常用 Git 工作流基本不同。

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

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

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

分支工作流最常出现在公共开源项目中。

分支工作流的主要优点是,可以集成贡献而无需每个人都推送到单个中央存储库。

开发人员推送到其服务器端存储库,只有项目维护人员才能推送到官方存储库。

它允许维护者接受来自任何开发人员的提交,而无需授予他们对官方代码库的书面访问权限。

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

结果是分布式工作流,为大型有机团队(包括不受信任的第三方)提供了一种灵活的方式来安全地协作。

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

工作原理

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

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

相反,他们会分叉官方存储库,以便在服务器上创建它的副本。

这个新副本作为他们的私人公共仓库——其他开发人员不能推送到它,但他们可以从中拉取更改(我们将稍后了解为什么这是必要的)。

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

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

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

然后,他们向主存储库提交拉取请求,使项目维护者知道更新已准备好集成。

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

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

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

将该功能集成到官方代码库中:

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

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

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

唯一使官方存储库被视为官方的原因是,它是项目维护者的存储库。

分叉与克隆

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

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

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

克隆作实质上是存储库及其历史记录的副本。