Frenlee

gitflow的应用

概述

git flow 是git的一个扩展,高版本的git一般都自带这个功能,它可以使团队高效的进行版本管理,可以方便的使用git的分支开发,从而省去checkout 分支,merge分支的操作!

在使用git版本操作时,一般都会有多个分支,一个主分支(一般使用master),用户发布版本,一个开发分支(develop),开发时从develop分支checkout一个新的分支开发新的特性,开发完成后合并到开发分支,测试通过后合并到主分支,当有bug测试版本有bug时,可以从开发分支切一个分支出来进行修复然后合并到开发分支,当发布版本后有bug时,从主分支切一个分支出来进行修复,然后合并到主分支和开发分支.使用git flow 可以有效的帮助你完成这些操作.gitflow 仓库地址

git flow的安装

git flow 可以工作在各大操作系统下,OSX,Linux,Window,如果在命令行运行 git flow 发现git 没有自带git flow 时,可以自行安装.

OSX中安装

brew install git-flow-avh

Linux中安装

apt-get install git-flow

window中安装

可参见 gitflow windows安装帮助文档

git flow 的使用

初始化

使用git-flow,需要开始从git库初始化git flow.使用
git flow init
初始化,如果你是刚开始的一个版本你一直回车下去就好,如果你原本就存在一些分支,你只需要在对应的地方输入你的分支名称即可.初始化完成后你就可以进行下面的操作.

开发新特性

新特性是从develop开发分支切换出来的,用于开发一些新的功能:
git flow feature start 名称
这个操作会develop分支中切出新的分支,然后切换到改分支下.


当你完成了该功能的开发,你就需要将改分支合并到开发分支下:
git flow feature finish [名称]
这个操作会将新的分支合并到develop分支下,并删除该分支,切换回develop开发分支下.


当然如果你没有完成该分支,或者需要别人接手开发这个功能,你可以将这个分支发布到远程仓库中:
git flow feature publish [名称]
这样别人就可以获取到这个分支的代码:
git flow feature track 名称,也可以使用 git flow feature pull origin 名称
这样就可以把这个分支从远程仓库拉到本地,并切换到这个分支.

释放版本

当你完成了开发,需要将开发的功能合并到主分支时,你可以使用
git flow release start 版本号
这个命令将从develop开发分支中切换出一个版本.


同时,如果你需要将这个分支发布的话,你可以使用
git flow release publish [版本号]
来将这个分支发布到远程仓库.然后别人就可以使用
git flow release track 版本号
来拉取这个分支,做一些操作.


当操作完成时,可以将release分支合并到master,develop分支下.
git flow release finish 版本号
然后在master和develop中将代码push到远程仓库中即可.

修复开发bug

当你代码已经从特性合并到开发分支时,发的bug你可以使用bugfix 这个操作切出分支来进行修复.
git flow bugfix start 名称
完成后使用
git flow bugfix finish 名称
来将修复后的代码合并到develop分支中,同时也可以使用
git flow bugfix publish 名称,git flow bugfix track 名称
来发布和拉取这个分支

修复线上bug

当你发现发布后的代码时,你可以使用
git flow hotfix start 版本号
来从master 版本中切出分支进行修复,版本后你可以使用你发布的版本号来进行命名,例如发布的版本号为v1.0.0 那么你这个版本号可以使用 1.0.1 来命名.


修复完成后,使用
git flow hotfix finish [版本号]
来进行合并,这个合并将会把修复后的代码合并到master分支和develop分支中.

总结

使用git flow 可以很轻松的切出合并版本,在合并后记得在相应的分支下进行push.
其实git flow 用起来很简单大概命令就是

1
2
3
4
5
git flow init 初始化
git flow feature [start|finish|publish|track] 新特新开发操作
git flow bugfix [start|finish|publish|track] 开发bug修复操作
git flow hotfix [start|finish|publish|track] 线上bug修复操作
git flow release [start|finish|publish|track] 发布版本操作

当然,在使用git flow 的同时git的其他命令也是一样可以使用的.这就是关于git flow 工具使用的大概流程.

参考