Git flow的分支模型与及经常使用命令简单介绍

Git flow是git的一个扩展集,它基于Vincent Driessen 的分支模型,文章“A successful Git branching model”对这一分支模型进行了描写叙述。其示意图例如以下:

上图从左往右看,分别为

- 时间轴。从上往下时间在流逝

- feature分支(玫红)。图上有两个feature分支,在这个分支上,进行功能特性的开发

- develop分支(黄色)。git flow的主分支。feature分支和release分支都会将代码合并到此分支上

- release分支(绿色),总是基于develop分支创建,最后合并到develop分支和master分支

- hotfix分支(红色),总是基于master分支创建,最后合并到master分支和develop分支

- master分支(蓝色),git flow的主分支,在开发的整个阶段一直存在,平时不在此分支开发,因此代码比較稳定,能够用来公布

Git flow的源代码能够通过下面链接下载:

https://github.com/nvie/gitflow

或者,直接输入下面命令安装git flow:

apt-get install git-flow

在Windows平台下安装git flow,能够參考《Windows环境下msysgit安装git flow》

我们能够通过下面命令来初始化一个现有的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?

[]

这样,便完毕了git flow的初始化工作。

在git flow 的分支模型中,有两个主分支masterdevelop,还有几个额外的分支来支持代码的版本号管理。下面先简要介绍一下这些分支的特点和git flow经常使用命令的使用。

1. Master

master分支仅仅有一个。

master分支上的代码总是稳定的。随时能够公布出去。

平时一般不在master分支上操作。当release分支和hotfix分支合并代码到master分支上时,master上代码才更新。

当仓库创建时,master分支会自己创建。

2. Develop

develop分支仅仅有一个。

新特性的开发是基于develop分支的,但不直接在develop分支上开发,特性的开发是在feature分支上进行。

当develop分支上的特性足够多以至于能够进行新版本号的公布时。能够创建release分支的。

3. Feature

能够同一时候存在多个feature分支。新特性的开发正是在此分支上面。

能够对每一个新特性创建一个新的feature分支,当该特性开发完毕,将此feature分支合并到develop分支。

创建一个新的feature分支。能够使用下面命令:

git flow feature start test

运行下面命令后,feature/test分支会被创建。

当特性开发完毕,须要将此分支合并到develop分支。能够使用下面命令实现:

git flow feature finish test

上面的命令会将feature/test分支的内容merge到develop分支,并将feature/test分支删除。

feature分支仅仅是存在于本地仓库,假设须要多个人共同开发此特性。也能够将feature分支推送到过程仓库。

git flow feature publish test

feature 分支的生命周期持续到特性的开发完毕,当完毕特性的开发。你能够使用git的分支管理命令将此feature分支删除。

4. Release

当完毕了特性的开发。而且将feature分支上的内容merge到develop分支上,这时能够開始着手准备新版本号的公布。release分支正是作为公布而开设的分支。

release分支基于develop分支,在同一时间仅仅有一个release分支,其生命周期较短。仅仅是为了公布而使用。这意味着,在release分支上,仅仅是进行较少代码改动,比方bug的修复,原有功能的完好等。

不同意在release分支添加大的功能。由于这样会导致release分支的不稳定,不利于公布的进行。

当release分支(比如,v.1.0)被创建出来后,develop分支可能正准备还有一版本号(比如。v.2.0),因此,当release分支merge回develop分支时,可能会出现冲突,须要手工解决冲突才干继续merge。

通过下面命令来创建release分支:

git flow release start v.1.0

运行过完上面的命令。release分支release/v.1.0会被创建出来 ,而且切换到该分支。

当完毕release分支功能的完好或者bug的修复后,运行下面命令来完毕release分支:

git flow release finish v.1.0

这个命令会运行下面的操作:

  • 分支release/v.1.0 merge回master分支
  • 使用release/v.1.0分支名称打tag
  • 分支release/v.1.0 merge回develop分支
  • 删除release/v.1.0分支

5. Hotfix

当发现master分支出现一个须要紧急修复的bug,能够使用hotfix分支。hotfix分支基于master分支。用来修复bug,当完毕bug的修复工作后,须要将其merge回master分支。

同一时间仅仅有一个hotfix分支,其生命周期较短。

能够使用下面命令来创建hotfix分支:

git flow hotfix start v.1.0

使用下面命令来结束hotfix分支的生命周期:

git flow hotfix finish v.1.0

这句命令会将hotfix分支merge到master分支和release分支,并删除该hotfix分支。

值得注意的是。假设bug修复时。正存在着release分支,那么hotfix分支会merge到release分支,而不是develop分支。

能够使用下图来说明git flow这几分支的经常使用命令:

在开发的整个阶段。仅仅有两个主分支贯穿于整个开发阶段:master分支和develop分支。

功能特性的开发以及bug的修复都通过创建新的分支来实现,且这些分支的生命周期都比較短暂。

开发成员之间的开发能够做到尽量不干扰对方。这保证了代码的稳定性。

git flow的分支模型简单清晰。易于使用。通过本文对git flow经常使用命令的介绍,你能够尽情享受它为我们管理代码带来的方便。

參考资料

  1. http://internetdevels.com/blog/git-flow-model
  2. http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html
  3. http://www.berlinix.com/it/gitflow.php
时间: 2024-11-07 01:06:09

Git flow的分支模型与及经常使用命令简单介绍的相关文章

Git flow的分支模型与及常用命令简介

Git flow是git的一个扩展集,它基于Vincent Driessen 的分支模型,文章"A successful Git branching model"对这一分支模型进行了描述,其示意图如下: Git flow的源码可以通过以下链接下载: https://github.com/nvie/gitflow 或者,直接输入以下命令安装git flow: apt-get install git-flow 在Windows平台下安装git flow,可以参考<Windows环境下

基于git的源代码管理模型——git flow

说明: 本文以nvie的“a successful git branching model”为蓝本,结合我个人理解写成.如有谬误,还请各位指出.多谢! Note: This article is highly based on nvie's a successful git branching model. Thanks nvie. Git Flow 是什么 Git Flow是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践.Git Flow是一套使用Git

git flow的使用

简介 Gitflow工作流程围绕项目发布定义了严格的分支模型.尽管它比Feature Branch Workflow更复杂一些,但它也为管理更大规模的项目提供了坚实的框架. 与Feature Branch Workflow比起来,Gitflow流程并没有增加任何新的概念或命令.其特色在于,它为不同的分支分配了非常明确的角色,并且定义了使用场景和用法.除了用于功能开发的分支,它还使用独立的分支进行发布前的准备.记录以及后期维护.当然,你还是能充分利用Feature Branch Workflow的

Git Flow-基于git的源代码管理模型

Git Flow 是什么 Git Flow是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践.Git Flow是一套使用Git进行源代码管理时的一套行为规范和简化部分Git操作的工具. 2010年5月,在一篇名为"一种成功的Git分支模型"的博文中,@nvie介绍了一种在Git之上的软件开发模型.通过利用Git创建和管理分支的能力,为每个分支设定具有特定的含义名称,并将软件生命周期中的各类活动归并到不同的分支上.实现了软件开发过程不同操作的相互隔离

用git flow 管理版本吧

git配置 首先下载git git链接 打开"Git"->"Git Bash",输入: $ git config --global user.name "Your Name" $ git config --global user.email "[email protected]" 所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ p

Git 分支模型与开发规范

01.分支模型 master:长期分支,一般用于管理对外发布版本,每个 commit 对一个 tag,也就是一个发布版本 develop:长期分支,一般用于作为日常开发汇总,即开发版的代码 feature: 短期分支,一般用于一个新功能的开发 hotfix :短期分支 ,一般用于正式发布以后,出现 bug,需要创建一个分支,进行 bug 修补. release :短期分支,一般用于发布正式版本之前(即合并到 master 分支之前),需要有的预发布的版本进行测试. master和develop作

基于SourceTree 下的 Git Flow 模型

1. sourceTree  是一个开源的git 图形管理工具,可下载mac版本,windows版本 2. Git Flow 是一套使用Git进行源代码管理时的一套行为规范和简化部分Git操作的工具. 基本的操作流程 1. 先用sourceTree 创建本地git 项目,xxxProject, 2. 在项目里面先提交一次 commit 一下,默认提交在了 master分支: 3. 然后在 sourceTree工具 右上角,点击 GitFlow,开启git Flow 规范模型的开发 如上图,在开启

(转载)介绍一个成功的 Git 分支模型

介绍一个成功的 Git 分支模型 在这篇文章中,我提出一个开发模型.我已经将这个开发模型引入到我所有的项目里(无论在工作还是私人)已经一年有余,并且它被证明是非常成功的.我打算写这些已经很久了,但我一直找不到时间来做,现在终于有时间了.我不会讲任何项目的具体细节,仅是关于分支策略和释放管理相关内容. 它主要体现了Git对我们源代码版本的管理. 为何是Git? 对于Git与其他集中式代码管理工具相比的优缺点的全面讨论,请参见这里.这样的争论总是喋喋不休.作为一个开发者,与现今的其他开发工具相比较,

【转】一个成功的Git分支模型 .

---恢复内容开始--- 能力所限,本文的翻译多处都很不地道,如果哪些地方难于理解,还烦请查看原文.—— Dbzhang800 20110921 在本文中,我向大家介绍的是在大约一年前我为自己的项目(包括工作和私人项目)引入的且已被证实非常成功的一个开发模型(development model).这段时间我一直想写点关于它的东西,但在此之前,我却从未能抽出充足的时间来完成这件事.我不会谈论项目的任何细节,只涉及分支策略(branching strategy)和发布管理(release manag