00:00
下边我们说这样一个概念哈,叫GI工作流,啥叫get工作流呢?就是我们开发项目的时候哈,我们这个get你咋用?有主要有这么三种方式,一种叫集中式,一种叫getate flow,一种叫foring。呃,这三种里边呢,最经典的是这个getate flow啊,这个可以说呢,用的最多的也也也是它啊,我们一会儿呢会详细的介绍它,现在呢,我们先看一下啊,这粗略的看一下这三种工作流是什么,是怎样一种用法。这种集中式的哈,呃,简单说呢,就是不分支,我们每个人呢,你有你的本地库,诶直接呢,我们就是和远程库的这个master主干呢去交互啊,然后呢,呃,这个就很像SV,那么在这种模式下呢,这个G的很多特性呢都没有用到啊,这个呢,相对来说用的会相对少一些啊。然后呢,这个get flow呢,就是充分的利用了我们分支的这个特点啊,我们可能会开发很多功能需要去用用分支我们去呃。
01:07
修复bug用分支,产品正式上线之前啊,我们进行最后的测试啊,预发布的时候用分支啊,我们一会儿呢再详细的去介绍这个foking呢,主要指的是我们使用folk和po request的这样一个机制,审查团队外的这个成员提供的代码啊呃,这种方式呢,我们像虚拟团队,像linuxx这种哈,虚拟团队他用这个用的比较多,还有呢,我们常规的开发呢,不是虚拟团队,偶尔的话需要请团队外的成员呢,帮我们,帮我们去解决问题的时候也可能会用到啊,但是他这个用的频率呢,会不太一样。诶,下边呢,我们去主要是给大家介绍一下这个get flow这个工作流,这个分支的种类,我们就先不念了哈,我们下边把这个实际的例子呢,咱们给大家演示一遍,大家就能够明白这些。具体的分支是什么意思了,假设呢,我们现在这个master分支哈,是我们线上正在跑的这个代码,就是以master分支为准的,然后呢,现在是1.0这个版本,我们现在呢,想开发一个新的功能,这个新的功能呢,我们不是直接在master上面去开发的,那么我们会新建一个,当然这个也不一定是新建的啊,就是我们会有这样一个develop开发分支,这个分支呢,作为我们开发过程中的一个基准啊,那么我们多个分支呢,在开发过程中呢,都呃都要把这个我们所做的修改呢,最终你开发完这个功能合并回这个develop上面。
02:34
我们现在想开发一个新的功能呢,这个叫做gold style啊,就是说呢,我们现在想开发一个金色的这样一个风格啊,就是界面开发一套金色为主色调的这样一个界面,这是一个功能,然后呢。还有呢,我们这个,呃,再开发一个功能呢,是这个小游戏,诶那么这些功能哈,我们为了能够齐头并进的,并行的向前这个推进,我们分别呢,给它创建对应的分支,在分支里边呢,去开发这个功能。
03:09
正在这个开发的过程当中呢,我们线上跑的这个呀,诶出现bug了,出现bug呢,呃,往往还都是这个比较呃关键的地方,哎,这个出现bug,那么我们就需要紧急的对它进行修复,修复呢,我们会创建一个hot fix这样一个分支,这个hot fix呢,就是我们这个热修复啊,专门修复bug使用的这样一个分支,呃,往往这个分支的话,这个bug哈,如果说我们这个整个架构设计的非常合理,高内去低耦合哈,都能够做到这样,这个结构非常清晰,这个bug呢,一般来说也比较容易去修复。修复了bug以后呢,我们尽快给它合并回这个主干啊,那么我们线上跑的这个项目呢,它就啊这个就没有这个bug了。诶,这是我们这个版本呢,就推进到1.1这个版本,然后呢,为了让我们这个开发分支啊,我们开发的基准这个分支呢,也也把这个bug给修复了,那么把hot fix呢也合并到develop上面,诶诶这时候我们这两个这两个功能哈,还在继续向前推进,那么这个开发界面呢,比较容易,它就现在呢,你看它就开发完了。
04:18
开发完了以后呢,我们把它合并回这个,合并到开发分支上面,那么我们为了在上线之前进行最后的确认测试,我们把这个develop这个分支呢,基于这样一个点啊,基于这样一个版本的一个状态呢,再去创建一个release这样一个分支,我们管这个呢叫做预发布分支啊,在这个分支上面呢,进行我们呃,最重要的。嗯,最最终的一个上线前的一个测试。那么这个时候呢,如果发现这个bug,我们一般呢,就在预发布分支上面呢,当时就修复了,修复以后呢,给它合并到master上面,那么线上呢,就有我们这个新开发的这这一套金色的皮肤了。
05:01
哎,我们这个大的版本呢,就推进到了2.0。然后呢,我们这个生产分支上面呢,这个开发分支上面哈,它也需要有这个功能,也也给它合并回我们开发分支上面这个,然后这个小游戏这个功能呢,经过一系列的迭代啊,他也这个完成了。完成了以后呢,我们就把它合并到我们这个,呃,开发分支上面,开发分支呢,再合再还是要经过这个预发布的这个测试啊,这个如果没问题,就合并回我们这个主干上。啊呃,整个这个过程呢,我们看到呢,还是挺复杂的。啊,那么其实实际的过程当中呢,我们说哈,开发当中倒不一定把所有这些分支呢,我们都要用上,咱们这儿讲的呢,是一种比较全面的分支的设计,你比如说呢,我们hot fix哈,呃,往往一方面呢,是它创建完了以后呢,就是bug修复完了后,可能随手就删除了,以后有bug呢,我们临时就是再去建,也有可能呢,我们就直接在master上面去改啊嗯,当然这个也会有一定的风险啊呃,然后这个预发部分制呢,也可能不会去创建,它就是develop呢,既是生产分支,也是预发布分制啊,所以说这个时候我们实际开发的时候呢,可能会相对这个来说呢,比较精简。
我来说两句