一、为什么需要使用分支
几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,避免影响开发主线。多线程开发,可以同时开启多个任务的开发,多个任务之间互不影响
先看单线程开发
现在思考如下现象
10.1 日 业务部门提出需求 : 明年 元旦3天做2个促销活动
1) 12.31 号上线活动1,
2) 1.4 号上线活动2 ,同时 要求撤销 活动1
你所在 部门领导 为了保证能顺利完成,要求 11.15 号完成 上述连个功能的开发工作
此时作为开发人员:我要面临两个文件, 活动1 的代码,即要存在(12.31 要用)又要不存在(1.4 号要求删除) ,我们怎么做?
显然比较棘手,如果使用分支(可以理解为将代码复制一份)将很好解决
这就是为什么需要使用Git分支做开发,简单讲,分支就是产生了一个master的副本,我们在分支上做完需求后,再将完成的需求成果合并到master分支,在此期间,master不会因分支的修改而发生改变,能稳定运行
二、工作中的分支思路
一般再工作中,会创建如下分支,这只是一般情况,具体的分支方法要根据实际的团队关系、业务规模而定
master(生产)分支
用于上线的代码就存放在master中,主分支,其他分支都是围着master转的
develop(开发)分支
是从master创建的分支,一般作为开发部门的主要开发分支, 如果没有其他并行开发不同期上线要求,都可以再此版本进行开发,阶段开发完成后,需要合并到master分支,准备上线
feature分支
从develop创建的分支,一般是同期的并行开发,但不同时期上线时创建的分支,分支上的研发任务完成后合并到develop分支,可以同时存在多条feature分支
hotfix分支
从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支
还有一些其他分支,例如 test分支(用于代码测试)、pre分支(预上线分支)等等