分支类型
git flow规范有这些类型的分支:master、develop、feature branches、release branches、hotfixes、bugfixes和support。其中保持稳定存在并且唯一的是master和develop。
从时间线上看可以参考下面这个图(来自 - A successful Git branching model):
master
master分支也称production(产品)分支,主分支上的每个commit都要打上tag。不能直接在这个分支上修改,只能从别的分支上合入。在这个项目里我们基本只从release和hotfix分支上合入,即一个可发布版本或修改完bug之后可以合入master。 ### develop 主开发分支,git flow初始化之后默认的分支就是这个。所有长期稳定的开发啊都在这条分支上。
当需要开发新功能时可以基于它创建feature,开发完成之后合并会develop。
当发行版本存在需要紧急修复的bug,基于master创建hotfix分支并且修复完成之后需要合并到develop和master分支,并且打出新的tag。
当认为版本稳定之后可以基于develop创建release分支,在release测试完成之后,release分支上的修改会合入到develop和master上,并且需要基于master分支打出一个新的tag。 ### feature 最容易理解的一种分支,当需要开发一个新功能时基于develop创建出来,开发完成之后需要合入到develop分支,然后可以删掉了。 ### release release分支基于develop创建出来,可在上面进行测试、修改bug等操作。release创建出来后不影响develop和feature分支的继续开发,比如可以继续创建feature分支开发新功能。但是一旦打了release分支之后不要从develop分支上合并新的改动到release分支。release分支完成之后需要合并到develop和master上,并且master需要打一个新的tag。完成之后这个release可以删除了。 ### hotfix 当在master上发行的一个tag上发现bug需要紧急热修复后,可基于master创建hotfix分支,在这个分支上修改bug。如果这个需要热修复多个bug,可以基于这个hotfix创建多个bugfix。hotfix修改完之后需要合并到develop和master上,并且master需要打一个新的tag。由于合并入了develop上,所以bug的修复也会进入到下一个release。 ### bugfix 任何时候发现存在bug需要修复都可以基于特定的分支(除了master外)创建bugfix分支,这一般是在平常开发使用,如果是那些发行后版本需要进行紧急修复的应该使用hotfix。比如在feature分支内碰到bug,可以基于这个feature创建bugfix分支。注意:bugfix跟hotfix不一样,完成之后合入的只是base分支。 ### support 用于保持一份平行独立的版本。比如说需要一个需要长期维护的独立版本,那么可以使用support分支。 ## git flow相关命令 关于这些命令具体对应的git基本命令可以到网上找找。 - 初始化git flow
### feature相关 - 创建一个feature
1
| git flow feature start <name>
|