Git Flow
2014-02-20
Git想必大家都很熟悉是什么个东西,就不在废话。今天说的是Git Flow
git-flow 是一个 git 扩展集,按 Vincent Driessen 的分支模型提供高层次的库操作。
查看详情
- 主要分支
- master: 永远处于production-ready状态,也就是最新版本的主分支
- develop: 下次发布的开发开发分支
- 特性分支
- feature branches: 开发功能的特性分支,从develop分支checkout生成,完成并且测试之后merge到develop
- release branches: 准备要发布的release版本。只修改bugs,从develop分支checkout生成,完成后merge回develop与master
- hotfix branches: 补丁分支,来不及等到新的release版本发布,马上修改上线,会从master分支checkout生成,修改后merge回develop与master
安装
- 你需要有一个可以工作的 git 作为前提。
- Git flow 可以工作在 OSX, Linux 和 Windows之下
**OSX** brew install git-flow
**Linux** apt-get install git-flow
**Windown** wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash
初始化
在git的项目顶目录执行
git flow init
会有一部分确认命令,大致是
No branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []
设定完成之后预设的分支就会变为develop分支
开发新功能,建立新的特性feature分支
执行
git flow feature start NEWFEATURE
(以此类推 git flow release 和 git flow hotfix)
这会帮你创建一个新的分支,分支是从develop分支。
git flow feature publish NEWFEATURE (此命令会将本地分支推送到服务器)
git flow feature finish NEWFEATURE (此命令会将分支merge到develop,并且删除当前分支)
如需要track别人的分支使用
git flow feature track NEWFEATURE
问题记录
- 如果某个同时开发2个的特兴分支,一个需要延后 一个需要上线,但是都merge到develop那么办法是将需要上线的feature分支改为hotfix分支之后进行finish。
- 如果使用github或者gitbucket的远端 尽量务必使用pull request功能,branch完成开发一个pull request之后,大家可以进行code review留言,讨论。