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命令
1,创建develop分支
#从master拉出develop分支
#可选,获取最新版本。git pull origin master
git checkout -b develop master
#发布develop分支
git push -u origin develop
2,创建feature分支
#从develop拉出feature_v1.0功能分支
#可选,获取最新版本。git pull origin develop
git checkout -b feature_v1.0 develop
#发布feature_v1.0分支
git push -u origin feature_v1.0
#在feature_v1.0上开发一些功能
3,完成feature,合并到develop分支
#develop分支获取最新
git pull origin develop
#切换到develop分支
git checkout develop
#从feature分支合并到develop分支
git merge --no-ff feature_v1.0
#删除feature分支,也可以不删除
git branch -d feature_v1.0
4,开始release
#从develop拉出一个release分支
#可选,获取最新版本。git pull origin develop
git checkout -b release_v1.0 develop
#fix bugs
5,完成release,合并到master分支和develop分支,在master打上tag标记
#合并到master
git checkout master
git merge --no-ff release_v1.0
#在master打tag标记
git tag release1.0 master
git push --tags
#合并到develop
git checkout develop
git merge --no-ff release_v1.0
6,开始hotfix
#从主线master拉出一个hotfix分支
#可选,获取最新版本。git pull origin master
git checkout -b hotfix_v1.0.1 master
7,完成hotfix,合并到master和develop,并在master上打tag。
#合并hotfix_v1.0.1到master
git checkout master
git merge --no-ff hotfix_v1.0.1
#在master打上tag
git tag hotfix1.0.1 master
git push --tags
#合并hotfix_v1.0.1到develop
git checkout develop
git merge --no-ff hotfix_v1.0.1
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>