zoukankan      html  css  js  c++  java
  • Git flow的分支模型与及经常使用命令简单介绍

    git flow

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

    git flow分支模型

    上图从左往右看,分别为
    - 时间轴。从上往下时间在流逝
    - 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这几分支的经常使用命令:

    git flow commands

    在开发的整个阶段。仅仅有两个主分支贯穿于整个开发阶段: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
  • 相关阅读:
    2653 区间xor
    c++位运算
    洛谷P1233 木棍加工
    c++背包问题
    FOC基本调试方法[转]
    用于下载AD官网登录账号:User name: fuxin918@fuxin918.com Passeword: s6c0W1w8
    STC10F10XE定时器中断输出10KHz的方波程序
    学习DSP(三)安装C2833x/C2823x C/C++ 头文件和外设示例-压缩包
    学DSP(二):目标芯片28335,GO!
    学DSP(一):开始
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6855562.html
Copyright © 2011-2022 走看看