Git 201 – git flow tutorial

上次推荐过Git,其中也提到过 a successful git branching model,作者nevi针对于这种模型也做出一个相应的工具也支持更好的使用,就是git-flow

该模型很清晰的定义出了几类分支,像master, develop, feature-, release-, hotfixes-*。对于团队开发特别适用。

####开始使用git-flow

$ git flow init

新建过程中会为你的各种branch类型起一个名字,推荐使用默认。

####master branch

该branch永远处于production-ready的状态,用于发布,并作为长期分支一直保留,所有产品正式发布出去的内容都来源于该分支,对于每次发布还应有其相对应的tag。

####develop branch

一直存在于branch中。

####feature-* branch

当有一个新的功能进行开发时,推荐将开发过程放在一个新建的feature分支里。该分支从develop中建立,开发过程中可以共享给团队其它成员,也可以从服务器取到其它成员的feature branch。在功能完成时,将其合并回develop分支并册除该分支。

git flow feature [list] [-v]

列出所有的features

git flow feature start [-F] []

开始一个新的特性分支

-F fetch from $ORIGIN before performing local operation

git flow feature finish [-rFk] <name|nameprefix>

结束分支

-F 在新建之前,先从$ORIGIN获取最新代码。
-r 使用 rebase 代替默认的 merge,只生成一次commit 记录。
-k 在完成之后仍保留该分支,默认会删除。

git flow feature publish

将该branch发布到origin上与其他人共享。

git flow feature track

从$ORIGIN上获取一个他人共享过的branch,并在本地创建。

git flow feature diff [<name|nameprefix>]

feature branch和develop之间所有的差异。

git flow feature rebase [-i] [<name|nameprefix>]

?

git flow feature checkout [<name|nameprefix>]

从任一branch切换到指定feature分支

git flow feature pull []

获取服务器其它成员的该分支提交。

####release branch

在做产品发布时创建的分支类型,在这个分支上做一些配置管理的工作,比如说更改软件版本号之类的。需要注意的是release分支应该从develop分支出来,并且发布结束需要合并回develop和master分支。

git flow release [list] [-v]

列出所有的release分支信息

git flow release start [-F]

新建一个名为的release分支(这里建议使用版本号作为branch名,结束时使用该名字为代码打上tag),新的分支名为release/version.

-F fetch from $ORIGIN before performing local operation Start new release named

git flow release finish [-Fsumpkn]

完成该version 的release branch

-F 在新建之前,先从$ORIGIN获取最新代码
-s sign the release tag cryptographically
-u use the given GPG-key for the digital signature (implies -s)
-m use the given tag message
-p 结束后将代码push到 $ORIGIN
-k keep branch after performing finish
-n 结束时不用给代码打上version的tag

git flow release publish

在$ORIGIN上共享该release 分支

git flow release track

从$ORIGIN上获取一个已被共享的release 分支。

####hotfix-* branch

当发布出去的版本有继续fix的问题时,使用hotfix分支类型进行问题修复。需要注意的是hotfix分支应该从master分支出来,并且fix结束需要合并回develop和master分支。

git flow hotfix [list] [-v]

列出所有的hotfix分支

git flow hotfix start [-F] []

新建一个名为的hotfix分支,分支全名为hotfix/version,可通过参数来选择是基于base而非默认的master。

-F fetch from $ORIGIN before performing local operation

git flow hotfix finish [-Fsumpkn]

完成一个hotfix分支

-F fetch from $ORIGIN before performing finish
-s sign the release tag cryptographically
-u use the given GPG-key for the digital signature (implies -s)
-m use the given tag message
-p push to $ORIGIN after performing finish
-k keep branch after performing finish
-n 不为该branch打上tag

#####REF:
Getting started git-flow
Command Line Arguments
Git flow 開發流程
Git flow学习笔记
Git介绍,安装,Git+Git flow使用