master
也是产品分支,只有一个,一般情况下不会在这个分支上进行代码操作
develop
只有一个,新特性的开发是基于 develop 开发的,但是不能直接在 develop 上进行开发,而是在基于 develop 上创建 feature 分支进行新特性的开发。
feature
可以同时存在多个,基于 develop 分支被创建。对于每一个新的功能可以创建一个新的 feature 分支,开发结束之后,合并到 develop 分支即可。
git flow feature start name # 执行之后,feature/name 分支就会被创建
git flow feature finish name
# 执行之后,feature/name 分支的内容就会合并到 develop,并且删除 feature/name 分支。
# 当新特性开发完成过后,需要合并到 develop 上才用
release
release 分支是为了发布而存在的分支,基于 develop 分支被创建。
在同一时间只能有一个 release 分支,在此分支上仅仅是较少代码的修复。否则,容易引起release 分支不稳定。当 release 分支被创建之后,develop 分支可能在准备另一个版本的,因此,当 release 分支 merge 回 develop 分支时候可能会出现冲突,需要手工解决冲突。
git flow release start v.1.0 # 开始发布
git flow release finish v.1.0 # 发布
# 一系列动作
# 1.分支merge回master分支
# 2.使用release分支名称打tag
# 3.release分支merge回develop分支
# 4.删除release分支。
hotfix
当发现 master 分支出现一个需要紧急修复的 bug,这个时候就需要使用 hotfix。基于 master 分支被创建。同一时间只有一个 hotfix 分支,生命周期比较短。
git flow hotfix start v.1.0 # 开始热修复
git flow hotfix finish v.1.0 # 结束热修复
# 会把hotfix分支merge到master和develop分支,并且删除此分支。
原文:https://www.cnblogs.com/endingly/p/14627238.html