Git Flow分支管理

1、Git Flow常用分支

Git Flow常用分支主要分为两类:主干分支和辅助分支。其中,主干分支包括master和develop,会一直存在;辅助分支包括feature、release和hotfix。

1.1 主干分支

master

  • 所有提供给用户使用的正式版本,都在这个主分支上发布
  • 只读唯一分支,这个分支只能从其它分支(release/hotfix)合并,不能在这个分支上直接修改
  • 所有在master上的推送应该标记tag

develop

  • 主开发分支 , 基于master分支克隆
  • 包含所有要发布到下一个release的代码
  • 只读唯一分支,只能从其他分支(feature/release/hotfix)合并。

1.2 辅助分支

feature

  • 功能分支,基于develop分支克隆,主要用于新需求新功能开发
  • 功能开发完成后合并回develop分支进入下一个release,可删除当前feature分支
  • feature分支绝不能和master分支交互

release

  • 预发布分支,基于feature分支合并到develop之后  , 从develop分支克隆,之后不要合并新的改动到release分支
  • 测试人员对release分支进行功能测试,测试过程中发现的bug在本分支进行修复
  • 修复完成上线后合并到develop/master分支并推送(完成功能),在master打tag,记住release版本号
  • release分支不添加任何新功能,除了bug修复,文件生成和面向发行版的任务改动
  • 功能上线后可删除release分支

hotfix

  • 补丁分支,基于master分支克隆,用于对线上版本进行快速bug修复
  • 修复完成后合并到master/develop分支推送并打tag
  • 所有hotfix分支的改动会进入下一个release

2、Git Flow工作流程

下图较清晰的描述了Git Flow的工作流程:

Git Flow分支管理

3、Git Flow命令

Git Flow 常用命令如下:

###初始化###
$ git flow init

###功能开发###
查看feature分支:git flow feature
开始新feature:git flow feature start <name> [<base>]    (<base>必须是develop分支的一个提交)
push一个feature到远程:git flow feature publish <name>
从远程pull一个feature:git flow feature pull <remote> <name>
完成一个feature:git flow feature finish <name>

###代码发布###
查看release分支:git flow release
开始一个release: git flow release start <release> [<base>]    (<base>必须是develop分支的一个提交)
完成一个 release:git flow release finish <release>

###问题修复###
查看hotfix分支:git flow hotfix
开始一个hotfix:git flow hotfix start <release> [<base>]    (<base>必须是master分支的一个提交)
完成一个hotfix:git flow hotfix finish <release>

4、Git Flow工具

4.1 SourceTree

Git Flow分支管理

4.2 vscode插件

Git Flow分支管理

4.3 idea插件

Git Flow分支管理