0%

Git Flow分支模型

分支类型

git flow规范有这些类型的分支:master、develop、feature branches、release branches、hotfixes、bugfixes和support。其中保持稳定存在并且唯一的是master和develop。

从时间线上看可以参考下面这个图(来自 - A successful Git branching model): git flow 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

1
git flow init
### feature相关 - 创建一个feature
1
git flow feature start <name>
- 推送(push)分支
1
git flow feature publish <name>
- 拉取(pull)分支
1
git flow feature track origin <name>
- 完成一个feature(将会合并入develop分支)
1
git flow feature finish <name>
- 删除分支
1
git flow feature delete <name>
### release相关 - 列出所有release
1
git flow release
- 创建一个release
1
git flow release start <version>(例如: v0.1)
- 推送(push)release
1
git flow release publish <version>
- 拉取(pull)release
1
git flow release track <version>
- 完成一个release(这需要填写tag消息和merge消息),完成之后会以版本号创建tag
1
git flow release finish
- 删除release
1
git flow release delete <version>
### hotfix相关 - 列出所有hotfix分支
1
git flow hotfix
- 创建一个hotfix分支
1
git flow hotfix start <version>(修复完bug之后需要重新打tag,所以这里的版本号也是release的版本号)
- 推送(push)hotfix
1
git flow hotfix publish <version>
- 完成一个hotfix
1
git flow hotfix finish
- 删除hotfix
1
git flow hotfix delete <version>
### bugfix相关 - 列出所有bugfix分支
1
git flow bugfix
- 创建一个bugfix分支(默认基于develop)
1
git flow bugfix start <name> [可选:base分支名]
- 推送(push)bugfix
1
git flow bugfix publish <name>
- 拉取(pull)bugfix
1
git flow bugfix track <name>
- 完成一个bugfix
1
git flow bugfix finish <name>
### support相关 - 创建一个support分支
1
git flow support start <version> <base>

请我喝瓶肥仔快乐水?

欢迎关注我的其它发布渠道