Git Flow 是最早出现也是最经典的一种分支管理策略,它由两个长期分支和三种类型的临时分支组成。
主分支。用于存放经过测试,完全稳定的代码。永远都是可发布分支。
开发分支一开始从master分离而来,用于存放基本稳定的代码。当该分支代码稳定,可发布版本时,合并到master分支上。
功能模块分支,从dev分支分离而来,用于开发项目功能,当开发新功能时以
feature -xxx
命名,开发完成后,合并到develop上,合并后删除自己。
版本预发布分支,当v1.0.1版本发布时,可以从develop分支签出release-1.0.1,进行测试,测试出现问题,在release-1.0.1进行修改,测试完毕后准备发布将代码合并至master分支和develop分支上,给master打上v1.0.1的标签,合并后删除自己,这样做可以不影响下个版本功能的开发。
线上紧急bug修复的分支,命名为hotfix-xxx,修改完成后,合并到master分支和develop分支,合并到master后打上修复版本的tag,合并后删除自己。
我们以流程图的形式展开了解
详细说明:
我们程序刚创建的时候只有默认的master
分支,也就是节点A
,这时我们需要进行功能版本的开发,于是从A
节点签出一个develop
分支,这时就有了节点B
,于是当我们要进行新功能的开发时候,从B、C
时间点签出到feature
分支的D、E
进行功能的开发,当功能开发完成后相继有了F、G
,然后我们将完成的新功能合并到develop
分支上I
点、然后进行测试,测试中发现有Bug,进行修复,进而有了J、K
节点然后当测试完成稳定后,将预发布分支release
合到develop
分支和master
分支,得到了节点L、M
,master
上每次合并的时候都需要打上tag,M
节点需要打上相应的tag,标记一个发布版本,然后项目上线,上线后出现紧急Bug,需要签出到hotfix
分支,进行修复,修复后将代码合并到develop
和master
分支。
其中feature、release、hotfix
完成合并到develop
和master
后需要删除对应的分支。
根据工作中公司要求不同,有的公司可能会省略develop分支,有的会有testing分支专门用来测试使用等等。但是大概需要遵循的规则都是差不多哒。