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的工作流程:
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
4.2 vscode插件