git-flow的工作流程的工作流程
git-flow 的工作流程
当在团队开发中使用版本控制系统时,商定一个统一的工作流程是至关重要的。 Git 的确可以在各个方面做很多事情,然而,
如果在你的团队中还没有能形成一个特定有效的工作流程,那么混乱就将是不可避免的。
基本上你可以定义一个完全适合你自己项目的工作流程,或者使用一个别人定义好的。
在这章节中我们将一起学习一个当前非常流行的工作流程 git-flow 。
什么是 git-flow ?
一旦安装安装 git-flow ,你将会拥有一些扩展命令。这些命令会在一个预定义的顺序下自动执行多个操作。是的,这就是我们
的工作流程!
git-flow 并不是要替代 Git ,它仅仅是非常聪明有效地把标准的 Git 命令用脚本组合了起来。
严格来讲,你并不需要安装什么特别的东西就可以使用 git-flow 工作流程。你只需要了解,哪些工作流程是由哪些单独的任务
所组成的,并且附带上正确的参数,以及在一个正确的顺序下简单执行那些对应的 Git 命令就可以了。当然,如果你使用 git-
flow 脚本就会更加方便了,你就不需要把这些命令和顺序都记在脑子里。
安装 git-flow
近些年来出现了很多不同的安装方法。在本章节中我们会使用当前最流行的一种: AVH Edition。
要了解安装 git-flow 细节,请阅读下面这个文档 official documentation。
在项目中设置 git-flow
当你想把你的项目 "切换" 到 git-flow 上后, Git 还是可以像往常一样工作的。这完全是取决于你在仓库上使用特殊的 git-flow
命令或是普通的 Git 命令。换句话说, git-flow 它不会以任何一种戏剧性的方式来改变你的仓库。
话虽如此, git-flow 却存在一些限制。让我们开始在一个新的项目上初始化它吧,之后我们就会有所发现:
$ git flow init
Initialized empty Git repository in/Users/tobi/acme-website/.git/
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/]
当在项目的根目录执行 " git flow init " 命令时(它是否已经包括了一个 Git 仓库并不重要),一个交互式安装助手将引导您完
成这个初始化操作。听起来是不是有点炫,但实际上它只是在你的分支上配置了一些命名规则。尽管如此,这个安装助手还是
允许你使用自己喜欢的名字。我强烈建议你使用默认的命名机制,并且一步一步地确定下去。
分支的模式
git-flow 模式会预设两个主分支在仓库中:
master只能用来包括产品代码。你不能直接工作在这个 master 分支上,而是在其他指定的,独立的特性分支中(这方面我们
会马上谈到)。不直接提交改动到 master 分支上也是很多工作流程的一个共同的规则。
develop是你进行任何新的开发的基础分支。当你开始一个新的功能分支时,它将是开发的基础。另外,该分支也汇集所有已
经完成的功能,并等待被整合到 master 分支中。