安装
macOS:
1 | brew install git-flow-avh |
Ubuntu:
1 | apt-get install git-flow |
Windows:
1 | wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash |
初始化
在一个已有的版本库中执行
1 | git flow init |
默认有master及develop两个长期分支
分支说明
主要分支:
- master: 永远处在即将发布(production-ready)状态
- develop: 最新的开发状态
辅助分支:
- feature: 开发新功能的分支, 基于 develop, 完成后 merge 回 develop
- release: 准备要发布版本的分支, 用来修复 bug. 基于 develop, 完成后 merge 回 develop 和 master
- hotfix: 修复 master 上的问题, 等不及 release 版本就必须马上上线. 基于 master, 完成后 merge 回 master 和 develop
Feature 新特性
新特性帮助
1 | git flow feature help |
增加新特性
1 | git flow feature start rss-feed |
完成新特性
1 | git flow feature finish rss-feed |
Publish 推送
此部分为可选。新特性分支可以只存在于本机,不向远程仓库推送
推送新特性
可以使用publish命令将一个feature分支推到远程服务器
1 | git flow feature publish rss-feed |
或者直接:
1 | git push origin feature/rss-feed |
取得一个发布的新特性分支
1 | git flow feature pull origin rss-feed |
Release 发布
release分支是基于develop分支的
准备Release
1 | git flow release start 1.1.5 |
现在,可以在release/1.1.5分支,开始最后的准备工作,例如项目里的某些文件需要记录版本号
完成Release
1 | git flow release finish 1.1.5 |
git-flow自动做了以下事情:
- 拉取远程仓库,以确保目前是最新的版本。
- release的内容会被合并到 master和develop两个分支中去,这样不仅产品代码为最新的版本,而且新的功能分支也将基于最新代码。
- 为便于识别和做历史参考,release提交会被标记上这个release的名字(在我们的例子里是 1.1.5)
- 清理操作,版本分支会被删除,并且回到develop
Hotfix 紧急修复
hotfix分支是基于master分支的
开始Hotfix
1 | git flow hotfix start missing-link |
完成Hotfix
1 | git flow hotfix finish VERSION |