Gitflow开发流程
Git flow
请大家在协作开发过程中,尽量使用这种流程,对自己和团队都有利。
Git flow 定义
1、gitflow定义了一个围绕项目发布的严格的分支模型
2、gitflow仍然用中央仓库作为所有开发者的交互中心。
Git flow 分支讲解

master: maseter分支,存储正式发布的历史。发布的版本号
hotfix:上线分支,bug情急修复分支
release:发布分支,发布上线的时候
develop:开发分支,作为功能的收集分支。
feature:功能分支,每次开发新功能的时候都会有对应的feature分支
手把手教你如何创建Gitflow流程
第一步:

第二步:

生成结果:

历史分支
相对使用仅有的一个master分支,Gitflow工作流使用2个分支来记录项目的历史。master分支存储了正式发布的历史,而develop分支作为功能的集成分支。这样也方便master分支上的所有提交分配一个版本号。
功能分支
每个新功能位于一个自己的分支,这样可以push到中央仓库以备份和协作。但功能分支不是从master分支上拉出新分支,而是使用develop分支作为父分支。当新功能完成时,合并回develop分支。新功能提交应该从不直接与master分支交互。
功能分支——feature分支:
1、使用develop分支作为父分支,
2、每个新功能位于一个自己的分支
3、新功能完成后,合并回develop分支。
4、新功能提交应该从不直接与master分支交互。
5、分支名称feature/[feature name]。

如何创建一个功能分支呢

点击 建立新功能

自动生成新分支

当完成当前分支的开发需求之后,需要合并回develop分支。 点击 Git 工作流

发布分支
1、release分支使用develop分支作为父分支。
2、这个分支只应该做bug修复、文档生成和其它面向发布的任务。
3、发布完成之后,发布分支应该合并到master分支并分配一个版本号打好tag。
4、从新建发布分支以来的做的修改要合并回develop分支。
5、当前发布分支名称:release/[release version No.]
6、当前发布bug修复分支名称:release-bugfix-[Version No.]/[bug name|bug No.]
release 一般准备发布文档,部署在测试环境,让测试人员去测试。之后做bug修复工作。
release分支使用develop分支作为父分支。

创建发布分支 版本号,并确定生成该分支

在release分支中做 bug修复工作

修复工作完成之后,完成当前发布版本的更新

对该分支打tag标签,删除release分支,并合并回 开发分支和 master分支中去

圆满结束

维护分支hofix分支操作
1、要从master分支上建立新的分支。
2、develop分支第一次从master分支fork出来,此后独立成长。hotfix分支一直从master分支fork出来。
3、修复完成,应该马上合并回master分支和develop分支。
4、master分支应该用新的版本号打好tag。
5、分支名称:hofix/[bug name|bug No.]。
master,develop,feature,release形成一个闭环。线上bug需要紧急修复时,master分支上fork一个hotfix分支,hotfix分支完成后,会合并到master分支,也会合并到develop分支。
feature往前推进过程中,定期将develop分支合并feature分支,这样可以使冲突最小化。



