Skip to content

Latest commit

 

History

History
31 lines (15 loc) · 3.58 KB

workflow.md

File metadata and controls

31 lines (15 loc) · 3.58 KB

何选择 Git 工作流 ?

选择 CodeFever 则相当于选择了 分布式 Git 工作流程, 常见的分布式流程有 集中式工作流 , 集成管理者工作流主管副主管工作流 每一种工作流都有自己的特点, 这里需要根据自己项目的特点来判断。

CodeFever 提供了 分支 , 合并请求Fork 功能,因此可以轻松支持这三种工作流。

集中式工作流

集中式系统中通常使用的是单点协作模型——集中式工作流。 一个中心 仓库, 可以接受代码, 所有人将自己的工作与之同步。 若干个开发者则作为节点, 即中心仓库的消费者与中心仓库同步。

这意味着如果两个开发者从中心仓库克隆代码下来, 同时做了一些修改, 那么只有第一个开发者可以顺利地把数据推送回共享服务器。 第二个开发者在推送修改之前, 必须先将第一个人的工作合并进来, 这样才不会覆盖第一个人的修改。 这和 Subversion (或任何 CVCS)中的概念一样, 而且这个模式也可以很好地运用到 Git 中。

如果在公司或者团队中, 你已经习惯了使用这种集中式工作流程, 完全可以继续采用这种简单的模式。 只需要搭建好一个中心仓库, 并给开发团队中的每个人推送数据的权限, 就可以开展工作了。Git 不会让用户覆盖彼此的修改。

当然这并不局限于小团队。 利用 Git 的分支模型, 通过同时在多个分支上工作的方式, 即使是上百人的开发团队也可以很好地在单个项目上协作。

集成管理者工作流

Git 允许多个远程仓库存在, 使得这样一种工作流成为可能: 每个开发者拥有自己仓库的写权限和其他所有人仓库的读权限。 这种情形下通常会有个代表“官方”项目的权威的仓库。 要为这个项目做贡献, 你需要从该项目克隆出一个自己的公开仓库, 然后将自己的修改推送上去。 接着你可以请求官方仓库的维护者拉取更新合并到主项目。 维护者可以将你的仓库作为远程仓库添加进来, 在本地测试你的变更, 将其合并入他们的分支并推送回官方仓库。

这是 GitHub 和 GitLab 等集线器式(hub-based)工具最常用的工作流程。人们可以容易地将某个项目派生成为自己的公开仓库, 向这个仓库推送自己的修改, 并为每个人所见。 这么做最主要的优点之一是你可以持续地工作, 而主仓库的维护者可以随时拉取你的修改。 贡献者不必等待维护者处理完提交的更新——每一方都可以按照自己的节奏工作。

主管与副主管工作流

这其实是多仓库工作流程的变种。 一般拥有数百位协作开发者的超大型项目才会用到这样的工作方式。 被称为 副主管(lieutenant) 的各个集成管理者分别负责集成项目中的特定部分。 所有这些副主管头上还有一位称为 主管(dictator) 的总集成管理者负责统筹。 主管维护的仓库作为参考仓库, 为所有协作者提供他们需要拉取的项目代码。

这种工作流程并不常用, 只有当项目极为庞杂, 或者需要多级别管理时, 才会体现出优势。 利用这种方式, 项目总负责人(即主管)可以把大量分散的集成工作委托给不同的小组负责人分别处理, 然后在不同时刻将大块的代码子集统筹起来, 用于之后的整合。

详细请阅读参考文章: 分布式 Git - 分布式工作流程