Git工作流 | 青训营

94 阅读2分钟

学习了Git研发流程后,对git的使用有了一些新的理解,并在此次大项目中有所应用,此文对使用做一个小结。

Git工作流

集中式工作流

使用集中式工作流的代表性平台为Gerrit以及SVN,它的特点在于只依托于主干分支进行开发,不存在其他分支,工作方式大致可以总结为四步

  1. 获取远端master代码
  2. 直接在master分支完成修改
  3. 提交前拉去最新的master代码和本地代码进行合并
  4. 提交本地代码到master

分支管理工作流

分支管理工作流有三种比较有代表性的管理策略,分别为Git FlowGithub Flow以及Gitlab Flow

Git Flow

Git Flow是比较早期的分支管理策略,它具有分支类型丰富,规范严格的特点。包含下列五种类型的分支:

  • Master:主干分支
  • Develop:开发分支
  • Feature:特性分支
  • Release:发布分支
  • Hotfix:热修复分支

其优点在于按照规范整理的代码会很清晰。但缺点也很明显,流程过于复杂,研发容易不按照标准执行,从而导致代码混乱。

Github Flow

Gtihub Flow的最大特点在于使用Pull Request来往主干分支中提交代码,且一般只有一个主干分支,其他分支在使用PR合入主干后,就可以进行删除。

使用这种方式进行团队协作开发足够简单,学习成本也很低,适合小规模的协同开发。

有两种合作的方式

  1. 创建好仓库后,其他用户通过Fork的方式来创建自己的仓库,并在Fork的仓库上进行开发
  2. 创建好仓库后,统一给其他团队成员分配权限,直接在同一个仓库内进行开发

使用Fork的方式时,可以使用git remote set-url来为remote分配不同的fetchpush的路径,将fetch设置为目标仓库,push设置为自己的私人仓库,这样就可以随时同步最新的代码。

Gitlab Flow

Gitlab Flow实在Git Flow和Github Flow的基础做出了优化,既保持了单一主分支的简便,又可以适应不同的开发环境。

其采用上游优先(upstream first)的策略,规定只有在上游分支(一般为master)采纳的代码才可以进入到下游分支。

image.png