00:00
来下边我们来说G的分支,首先说什么是分支呢?啊,我们先用一句话呢来概括一下啊,那就是是在我们版本控制过程中,哎,使用多条线同时推进我们多个任务,哎这样的操作呢,叫做分支,我们拿实际的例子呢,给大家去演示一下,比如说哈,我们你版本库初始化好以后,本身就会有一个master这样一个分支啊,你可以管它叫做master分支,你也可以把它叫做是主干,那现在呢,假设我们想开发一些新的功能,那么我们不想在master这个主干分支上面呢去进行开发。诶,我们不想对master分支呢,在没开发完之前哈,不想对它进行,不想对它造成污染啊,不想对它造成影响,那怎么办呢?我呢开辟一个新的分支,比如说哈,我们分支呢喜欢呢,命名的时候呢,以这个featureer这个开头啊,这个feature呢表示是功能啊,比如说呢,Feature车blue啊代表我们当前呢想开发一套以蓝色为主色调的皮肤啊,或者说这样一套主题,那么这个时候呢,我们这个这部分功能啊,我们想创建一个新的分支,在新的分支里边来开发。
01:26
这个新的分支呢,创建的时候,它是从主干分支里边呢给复制出来的,所以说刚创建分支的时候呢,主干和这个分支哈,他们的内容呢都是一致的,哎,你比如说呢,我们这个时候还想另外再开发一个功能啊,这个功能呢,比如说我们想去开发一个小游戏这样一个功能。哎,嗯,我们管这个功能呢,比如说呢,我们管它叫做game。
02:01
然后呢,他们就各自向前开发,哎,这个各有各的这个进度,哎,比如说这个feature blue,哎,他向前推进一个版本。比如说呢,这个feature game。哎,她也是按照自己的节奏呢,在往前去开发。诶,你这个时候呢,你会发现哈,首先有一个特点,就是这些各个分支在开发的过程当中呢,他们是彼此独立的。哎,那么如果我们不做合并的话呢,他们互相之间是不会有任何影响的,那万一呢,其中某一个分支开发失败了啊,这个为什么开发还会失败呢?就是你想哈,我们这个整个这个思路呢,和开发的大方向呢,都偏离的很严重,那么就不是说小打小闹的改其中的某一个小地方,这个时候呢,改改其中的某一个小地方是解决不了的,哎,所以我们要重新换另外一个方向,重新去,相当于推倒重来了,那么这个时候呢,我们把这个分支删除就可以了,非常简单啊,对其他的分支,对我们主干呢,没有任何的影响。
03:10
啊,那么这个时候呢,方便我们去试错啊,有些有些比较复杂的功能去开发的时候,我们就需要去进行一些尝试啊,又或者说呢,某个分功能哈,它所涉及到的,呃,他他所分配给的这个开发人员呢,可能是经验不是那么丰富的啊,那么他呢,直接让他在正式的我们主干这个分支上面去开发吧,也是风险比较大啊,他不一定能他的写的代码呢,可能质量还不是那么有保证啊,不是稳定,那么就是也是在分支里边去开发,诶一旦要是搞搞砸了呢,诶这个开发失败了,我们删掉分支,重新再重新再来过就可以了。然后呢,我们说这是一个好处哈,另外一个好处呢,就是这个我们开发各个功能的时候,诶,他们在开发过程中呢,彼此独立,谁也不会影响谁啊,那么避免呢,我们不同功能的代码都混杂在一起啊,彼此互相干扰,诶然后呢,也能够让各个开发开发具体功能的各个小组呢,我们能够齐头并进的啊,向前去推进这个任务,避免呢其中某一个小组哈,你说我开发呃主题的这个小组,呃,他如果需要等这个功呃游戏这个功能呢,开发完他再开发,那么这个小组呢,会有一段时间他在这闲着啊,那他他他等别人,那么这个时候呢,你想团队的整个的效率啊,他就会相对比较低,哎我们为了呃更快的啊去迭代我们的产品啊,我们最好呢,能够多个功能齐头并进的向前去推进。
04:45
那么我如果我们某一个功能哈,它开发完,我们就可以考虑把它给合并回这个主干。啊,那么这个时候呢,它是一个开发完成了啊,我们测试呢,这个没有问题,那么就是合并回这个主干,那么对主干来说呢,它是一个大版本的一个升级。
05:10
比如说原来是1.0啊,这个时候呢,就变成了这个2.0这样一个感觉,当然这个主干呢,比如说它在运行的过程当中呢,也有可能会出现这个bug。诶,那么我们这个出现bug的话呢,啊,我们就需要及时的对它进行这个修复,那么我们修复bug呢,诶往往呢,会创建一个叫hot fix这样一个分支。嗯,创建耗这个这个分支啥意思呢?就是叫做热修复,哎呃,为什么这个修复就修复吧,为什么还热修复呢?就是你想哈,我们这个服务器呢,它是不停的,服务器上面这个程序呢,不让它停止执行,那么这个时候呢,它就是所谓的这个就是叫做热修复,如果我们把服务器程序上面停了啊,把服务器上面跑的这个项目呢,给它暂时给它停掉,停掉以后再修复,那个我们可以相对的说叫做冷修复,那其实我们作为线上的项目呢,特别是互联网项目,基本上是24小时不停的啊,永远都不会停的啊,就是没有什么,只要是有一分办法啊,只要是有一点办法,可想肯定是轻易的,是不能让他停的,一旦要是停了的话,用户他是不会管你是出了什么问题的啊,那他肯定是呃,会影响极大的影响这个用户体验啊,导致这个用户的流失啊,影响我们这个项目的这个呃,商业的这个运作了。
06:45
啊,所以这个时候呢,我们去新开辟一个hot fix这个分值,诶这个相当于也是一种这个类似这种临时的分支哈,创建出来以后呢,紧急的把这个bug给它修复了,修复完再马上给合并回我们这个主干。
07:00
啊,是这样一种这个工作的方式,当然这个时候呢,可能这个我们游戏这个呢,它也开发完了。那它经过几个版本的这个迭代,因为它游戏呢,呃,相对来说它会比较复杂一些,他开发完了以后呢,它也可以把它呢,合并回我们这个主干。那么对于主干来说呢,就又是一次大版本的升级。哎,基本上呢,有了分支哈,我们就是这样一种这个工作的模式。所以说呢,这个你说分支有啥好处呢。呃,其中的我们第一个好处呢,就是同时哎这个并行去推进多个多个功能的这个开发,这样能够去提高我们的开发效率,另外一方面呢,呃,如果就是我们说各个分支在开发过程中,如果某一个分支开发这个失败啊,不会对嗯,其他分支有这个任何影响啊,呃,失败的这个分支删除啊,重新开始即可,那么就是说他们彼此是独立的啊,这个是非常有利于我们在开发过程中呢去试错,呃其实呢,我们SN的话也有分支,但是SN的那个分支呢,它。
08:45
它用起来就特别的不方便啊,它对分支文件的管理呢,效率也非常的低,但是我们这个GI呢,它这个分支哈,效率非常的高,命令在使用的过程中呢,也非常的优雅,非常的顺滑啊,下面咱们就来体验一下。
我来说两句