git-flow
git-flow工作流
master分支存储了正式发布的历史,不能直接工作在这个 master 分支上。
develop分支作为功能的集成分支;你进行任何新的开发的基础分支。
这两个分支被称作为 长期分支。它们会存活在项目的整个生命周期中。而其他的分支,例如针对功能的分支,针对发行的分支,仅仅只是临时存在的。它们是根据需要来创建的,当它们完成了自己的任务之后就会被删除掉。
功能分支【feature】
每一个新功能位于一个自己的分支,而且是从develop分支作为父分支。
当新功能完成时,合并回develop分支。
新功能提交应该从不直接与master分支交互。
发布分支【release】
一旦develop分支上有了做一次发布的足够功能,就从develop分支上fork一个发布分支。新建的分支用于开始发布循环,所以从这个时间点开始之后新的功能不能再加到这个分支上。这个分支只应该做Bug修复,文档生成和其它面向发布的任务。
一旦对外发布的工作都完成了,发布分支合并到master分支并分配一个版本号打好Tag。另外,这些从新建发布分支以来做的修改要合并回develop分支。
热修复分支【hotfix】
关于维护分支或说是热修复(hotfix)分支:
用于快速给产品发布版本打补丁。
唯一可以直接从master分支fork出来的分支。
修复完成后修改应该马上合并回master分支和develop分支,master分支应该用新的版本号打好Tag。
git-flow的追根溯源
Github [README]: https://github.com/nvie/gitflow
A collection of Git extensions to provide high-level repository operations for Vincent Driessen’s branching model
git-flow就是基于 Vincent Driessen的分支模型实现的。
Vincent Driessen的分支模型:A successful Git branching model
国内关于此篇文章的翻译:介绍一个成功的 Git 分支模型
git-flow命令
初始化
git flow init
使用 git-flow,从初始化一个现有的 git 库内开始;建议使用默认的命名;
新特性
增加新特性:
git flow feature start FEATUR_NAME
执行的操作:创建了一个基于’develop’的特性分支,并切换到这个分支之下
完成新特性:
git flow feature finish FEATURE_NAME
执行的操作:合并FEATURE分支到develop分支;删除这个新特性分支;切换回develop分支
发布新特性:
git flow feature publish [FEATURE_NAME]
执行的操作:发布新特性分支到远程服务器,其它用户也可以使用这分支。
取得一个发布的新特性分支:
git flow feature track FEATURE_NAME
执行的操作:取得其它用户发布的新特性分支,并签出远程的变更
做一个release版本
开始准备release版本:
git flow release start [RELEASE_NAME]
执行的操作:从 ‘develop’ 分支开始创建一个 release 分支
发布release:
git flow release publish RELEASE_NAME
类似于发布新特性分支
取得一个发布的release版本
git flow release track [RELEASE_NAME]
完成一个release
git flow release finish RELEASE_NAME
执行的操作:
- 归并 release 分支到 ‘master’ 分支
- 用 release 分支名打 Tag
- 归并 release 分支到 ‘develop’
- 移除 release 分支
紧急修复
开始 git flow 紧急修复
git flow hotfix start VERSION [BASENAME]
VERSION 参数标记着修正版本。你可以从 [BASENAME]开始,[BASENAME]为finish release时填写的版本号
完成紧急修复
git flow hotfix finish VERSION
当完成紧急修复分支,代码归并回 develop 和 master 分支。相应地,master 分支打上修正版本的 TAG。
安装git-flow
关于安装:https://github.com/nvie/gitflow/wiki/Installation
OSX
brew install git-flow
Centos
yum install gitflow
windows
window的安装会麻烦一些。
JetBrains系列软件中安装git-flow plugin
以mac下的webstorm为例
按照上图中的步骤可以在webstorm中安装git-flow的插件。
安装完重启webstorm后可以看到右下角多了Gitflow的选项。
安装这个插件后就不需要再输入git flow的命令了,不过git-flow总共也就那么几条命令,先熟练命令再用这个插件也许更好一点吧。
参考链接: