Skip to content

GIT 分支模型进化史

1. 引言

问题:

  1. 需要有哪些分支?每种分支的角色是什么?
  2. 在哪个分支发布代码?
  3. 发布前发现了 bug 怎么解决?
  4. 发布后发现了 bug 怎么解决?

2. github flow 分支模型

image.png

  1. 令master 分支时常保持可以部署的状态
  2. 进行新的作业时要从master 分支创建新的分支,新分支名称要具有描述性
  3. 在2新建的本地仓库分支中进行提交
  4. 在Github 端仓库创建同名分支,定期push
  5. 需要帮助、反馈,或者branch已经准备merging时,创建Pull Request,以Pull Request 进行交流
  6. 让其他开发者进行审查,确认作业完成后与master分支进行合并(合并的代码一定要测试
  7. 与master分支合并后,立刻部署

适合:框架、库 缺点:每次 bug fix 都需要重新发布

3. git flow 分支模型

image.png

4. gitlab flow 分支模型

image.png

5. trunk based 模型

其它

  1. hotfix:有时候 cherrypick 比 merge 更好

Reference

  1. Git 最佳实践:分支管理GitHub Flow & Git Flow 基于Git 的两种协作开发模式
  2. A successful Git branching model Git Flow
  3. Introduction to GitLab Flow Gitlab Flow