前言
分布式工作流程是第 5 章的的内容的一部分,下面的内容其实就是第 5 章的笔记。
第5章 分布式 git
这章主要就是如下三节:
- 分布式工作流程
- 为项目做贡献
- 项目的管理
第一节 分布式工作流层
主要是从大体上介绍了采用 git 进行开发时,常见的 3 中工作模式(或工作流程)
- 集中式工作流
- 集成管理员工作流
- 司令官与副官工作流
这 3 种工作流,应该说我们最常用,也最可能用到的就是集中式工作流,另外集成管理员工作流也可能用到,比如我们参与 Github 上一个开源项目时。
第二节 为项目做贡献
这节主要是从项目开发者的角度,举例说明在不同的工作流程中,作为项目开发者的工作流程。这节主要举了如下几个例子:
私有小型团队
在这个例子中,这个虚拟的小团队采用的其实是典型的集中式工作流,应该说我们对这种工作流的理解还是比较深的私有团队间协作
这个例子中,这个私有团队采用的是集成管理员工作流,但又跟本章第一节中说的稍显不同,因为在这个例子中,开发人员是有权限向项目主仓库推送特性分支的,只是不能对项目主仓库的 master 分支做操作。不过,本质上,确实是跟集成式管理员工作流一样的公共的小型项目
这个例子中,其实用到的工作流程也是集成式管理员工作流,只不过,这里有说了作为开发者我们可能遇到的各种情况,以及遇到这些情况是怎么处理公开的大型项目
这个我们就暂时不关心
第三节 项目的管理
这节主要是从项目维护者的角度讲了作为项目维护者,需要做的一些事。
做为开发者,在团队采用集中式工作流时,你的工作流程是什么样的
我觉得我们的工作流程应该是下面几种情况之一
流程1
- 开始正式的编码之前,首先 git pull 获取远程仓库的最新数据并合并到当前工作分支
- 编写代码并提交
- git fetch 获取远程仓库最新数据
- 切换到本地分支 git rebase 衍和远程分支
- git push 推送本地分支到远程仓库
流程2
- 开始正式的编码之前,首先 git pull 获取远程仓库的最新数据并合并到当前工作分支
- 编写代码并提交
- git fetch 获取远程仓库最新数据
- 切换到本地分支 git merge 合并远程分支
- git push 推送本地分支到远程仓库
流程3
- 开始正式的编码之前,首先 git pull 获取远程仓库的最新数据并合并到当前工作分支
- 编写代码并提交
- git pull 拉取远程分支数据并合并到本地分支
- git push 推送本地分支到远程仓库
流程 2 和流程 3 本质上一样的,它们相对于流程1来讲,最后都会多一个提交对象。所以,我更倾向于选择流程 1 作为我的工作流程。