Git 的工作流总结

概要

Git 的工作流总结。

博客

博客地址:IT老兵驿站

前言

原本这篇笔记的命名有问题,起成了GitLab工作流总结,其实现在仔细想,应该是Git工作流总结。

这里参考了阮一峰的文章,也参考了GitLab的介绍,阮一峰的文章其实是后面这篇的一个简化版。

本篇笔记主要针对这两篇文章进行学习和总结。

正文

Git工作流:

特点:

主要分支有:
develop分支:开发主分支。
master分支:线上分支。
feature分支:功能开发分支,开发完需要合并回develop分支。
release分支:用于测试的发布分支。
hotfix分支:对线上问题进行热修复的分支。

优缺点:

优点:
各个分支很清楚,每个分支的功用都划分的非常清楚。
缺点:
分支太多,维护起来难度就会比较大。
在这里插入图片描述

GitHub工作流:

特点:

主要分支有:
master分支:
feature分支:每次开发新开辟一个feature分支,开发完merge会master分支。

优缺点:

分支很简单,不过有的场景不适合。例如开发完,不能立刻发布的一些场景,那么这个时候,代码合并回master,master对应的就不再是已经部署的线上版本了。
在这里插入图片描述

GitLab工作流:

特点:

根据不同情况,分成了两种情况。

一种是有三个分支,master、preproduction、production,从上游到下游进行合并。
在这里插入图片描述
一种是不同的版本发布环境下,各开一个分支,也是由上游向下游合并。
在这里插入图片描述
这里面有一个原则,就是永远是从上游向下游去merge,或者去cherry-pick。

这个地方,我是这里去理解。
Git的标准流程分支太多,merge的方向也太多,GitLab约束了方向,只从上游向下游merge。
主开发分支可以领先很多,不断持续化发布出来备选发布的版本,可以发布到生产环境。

参考

https://docs.gitlab.com/ee/workflow/gitlab_flow.html
http://www.ruanyifeng.com/blog/2015/12/git-workflow.html