玩转 git-flow
目录
1、关于git-flow
git-flow 是一个 git 扩展集,按 Vincent Driessen 的分支模型提供高层次的库操作。Vincent Driessen 详情
git-flow 是一个基于归并的解决方案,它并没有提供重置(rebase)特性分支的能力。
gitkraken是一个极出色的 git 界面客户端,已经提供了 git-flow 的支持。
2、安装
macOS
Homebrew
$ brew install git-flow-avh
Macports
$ port install git-flow-avh
Linux
$ apt-get install git-flow
Windows
$ wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash
3、开始探索整个过程
使用之前,先搭建好自己的git仓库。新特性的开发是基于 ‘develop’ 分支的,创建好develop分支。
3.1初始化(init)
使用 git-flow,从初始化一个现有的 git 库。
$ git flow init
初始化过程中会回答几个关于分支的命名约定的问题,建议使用默认值(一路回车)。
3.2特性(feature)
3.2.1开发一个新功能
新特性的开发是基于 ‘develop’ 分支的,通过下面的命令开始开发新特性:
$ git flow feature start hfbin
这个操作创建了一个基于’develop’的特性分支,并切换到这个分支之下。
3.2.2完成一个新功能
完成开发新特性,会将合并 hfbin 分支到 ‘develop’,删除这个新特性分支,切换回 ‘develop’ 分支。
git flow feature finish hfbin
3.2.3 发布新特性
可以将自己的分支发布到远程仓库上,使得其他用户也可以使用你的分支。
$ git flow feature publish hfbin
3.2.4 获取发布的新特性分支
取得其它用户发布的新特性分支,并签出远程的变更。
$ git flow feature pull origin hfbin
3.4 发布版本(release)
支持一个新的用于生产环境的发布版本。允许修正小问题,并为发布版本准备元数据。
3.4.1 开始准备release版本
开始准备release版本,使用 git flow release 命令,它从 ‘develop’ 分支开始创建一个 release 分支。
$ git flow release start v1.0.0
创建 release 分支之后立即发布允许其它用户向这个 release 分支提交内容。命令十分类似发布新特性:
$ git flow release publish v1.0.0
3.4.2 完成 release 版本
完成 release 版本是一个大 git 分支操作。它执行下面几个动作:
1 、归并 release 分支到 ‘master’ 分支
2、用 release 分支名打 Tag
3、归并 release 分支到 ‘develop’
4、移除 release 分支
$ git flow release finish v1.0.0
3.4 紧急修复(hotfix)
紧急修复来自这样的需求:生产环境的版本处于一个不预期状态,需要立即修正。 有可能是需要修正 master 分支上某个 TAG 标记的生产版本。
3.4.1 开始 git flow 紧急修复
像其它 git flow 命令一样:
git flow hotfix start VERSION [BASENAME]
VERSION 参数标记着修正版本。你可以从 [BASENAME]开始,[BASENAME]为finish release时填写的版本号
3.4.2 完成紧急修复
当完成紧急修复分支,代码归并回 develop 和 master 分支。相应地,master 分支打上修正版本的 TAG。
git flow hotfix finish VERSION