关于

git-flow 是一个 git 扩展集,按 Vincent Driessen 的分支模型提供高层次的库操作。 查看详情

★ ★ ★

这个备忘清单展示了 git-flow 的基本操作和效果。

★ ★ ★

基础建议

  • Git flow 提供了极出色的命令帮忙以及输出提示。请仔细阅读并观察发生了什么事情...
  • macOS 程序 Sourcetree 是一个极出色的 git 界面客户端,已经提供了 git-flow 的支持。
  • - Git-flow 是一个基于归并的解决方案,它并没有提供重置(rebase)特性分支的能力。

★ ★ ★

安装

  • 你需要有一个可以工作的 git 作为前提。
  • Git flow 可以工作在 macOS, Linux 和 Windows之下

★ ★ ★

macOS

Homebrew

$ brew install git-flow-avh

Macports

$ port install git-flow-avh

Linux

$ apt-get install git-flow

Windows (Cygwin)

$ wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash

安装 git-flow, 你需要 wget 和 util-linux。

更多的 git flow 安装指引,请阅读git flow wiki.

开始

为了自定义你的项目,Git flow 需要初始化过程。

★ ★ ★

初始化

使用 git-flow,从初始化一个现有的 git 库内开始:

git flow init

你必须回答几个关于分支的命名约定的问题。
建议使用默认值。

 

特性

  • 为即将发布的版本开发新功能特性。
  • 这通常只存在开发者的库中。

★ ★ ★

增加新特性

新特性的开发是基于 'develop' 分支的。

通过下面的命令开始开发新特性:

git flow feature start MYFEATURE

这个操作创建了一个基于'develop'的特性分支,并切换到这个分支之下。

 

完成新特性

完成开发新特性。这个动作执行下面的操作.

  • 合并 MYFEATURE 分支到 'develop'
  • 删除这个新特性分支
  • 切换回 'develop' 分支

git flow feature finish MYFEATURE

 

发布新特性

你是否合作开发一项新特性?
发布新特性分支到远程服务器,所以,其它用户也可以使用这分支。

git flow feature publish MYFEATURE

 

取得一个发布的新特性分支

取得其它用户发布的新特性分支,并签出远程的变更。

git flow feature pull origin MYFEATURE

你可以使用 git flow feature track MYFEATURE跟踪在origin上的特性分支。

 

作一个release版本

  • 支持一个新的用于生产环境的发布版本。
  • 允许修正小问题,并为发布版本准备元数据。

★ ★ ★

开始准备release版本

开始准备release版本,使用 git flow release 命令.

它从 'develop' 分支开始创建一个 release 分支。

git flow release start RELEASE [BASE]

你可以选择提供一个 [BASE]参数,即提交记录的 sha-1 hash 值,来开启动 release 分支. 这个提交记录的 sha-1 hash 值必须是'develop' 分支下的。

★ ★ ★

创建 release 分支之后立即发布允许其它用户向这个 release 分支提交内容是个明智的做法。命令十分类似发布新特性:

git flow release publish RELEASE

(你可以通过 
git flow release track RELEASE 命令签出 release 版本的远程变更)

 

完成 release 版本

完成 release 版本是一个大 git 分支操作。它执行下面几个动作:

  • 归并 release 分支到 'master' 分支
  • 用 release 分支名打 Tag
  • 归并 release 分支到 'develop'
  • 移除 release 分支

git flow release finish RELEASE

 

紧急修复

  • 紧急修复来自这样的需求:生产环境的版本处于一个不预期状态,需要立即修正。
  • 有可能是需要修正 master 分支上某个 TAG 标记的生产版本。

★ ★ ★

开始 git flow 紧急修复

像其它 git flow 命令一样, 紧急修复分支开始自:

git flow hotfix start VERSION [BASENAME]

VERSION 参数标记着修正版本。你可以从 [BASENAME]开始,[BASENAME]为finish release时填写的版本号

 

完成紧急修复

当完成紧急修复分支,代码归并回 develop 和 master 分支。相应地,master 分支打上修正版本的 TAG。

git flow hotfix finish VERSION

 
 

Backlog

★ ★ ★

  • 并非所有可用的命令都涵盖在这里,这里包含有最重要的部分命令。
  • 你依旧可以继续使用你所知道和了解的 git 命令, git flow 只是一个工具集合。
  • 'support' 功能只是测试版本, 不建议使用
  • 如果你乐意提供翻译,我很乐意整合它。

git-flow 工作流 备忘清单的更多相关文章

  1. Git flow 工作流与规范

    概述 简版图: PS. 可能用到的命令: 1.从指定 commit拉出新分支   git checkout commitId -b 本地新branchName git checkout 9fbc3d0 ...

  2. git flow工作流

    https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md 说明: 个人在学习Git工作流的过程中,从原有的 SVN 模 ...

  3. GIT常用命令备忘

    Git配置 git config --global user.name "storm" git config --global user.email "stormzhan ...

  4. 【转】Git常用命令备忘

    Git配置 git config --global user.name "robbin" git config --global user.email "fankai@g ...

  5. crontab 不能执行git命令问题备忘

    这问题够隐蔽,折腾了近两个小时. 命令 git checkout tagname 手工执行都正常 但在crontab运行时发现分支一直切不过去. 后来告诉是crontab默认的 path  设置和系统 ...

  6. Git本地版本控制备忘

    首先git是一个版本控制工具,类似于SVN 笔记包括两部分,git本地版本控制和git远程协助 一.Git本地版本控制 以git windows版本msysgit为例,下载地址http://msysg ...

  7. Git + Gerrit 操作备忘

    Git review 作用 可以用来提交代码审核到Gerrit 安装 使用pip 安装 git-review 插件,执行 sudo -H pip install git-review 使用示例 可以参 ...

  8. Git命令基本操作备忘

    创建Git仓库并上传到远程Git仓库 git init git config user.name "显示的名称" git config user.email "EMAIL ...

  9. git建tag备忘

    1.git tag -a v1.1.8_20180613 -m '实时上传位置等功能提交测试' 2. git push origin v1.1.8_20180613

随机推荐

  1. ZOJ Monthly, January 2019-Little Sub and Pascal's Triangle

    这个题的话,它每行奇数的个数等于该行行号,如果是0开始的,就该数的二进制中的1的个数,设为k,以它作为次数,2k就是了. #include <stdio.h> int main() { i ...

  2. 【数位dp】bzoj1799: [Ahoi2009]self 同类分布

    各种奇怪姿势的数位dp Description 给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数. Sample Input 10 19 Sample Output 3 HINT [约束条 ...

  3. 基于ubuntu 14.04 kvm虚拟化部署

    1. 宿主机环境(dell备份服务器) Ubuntu 14.04 LTS 64位 内存:16G 硬盘:2T 2. 确认CPU是否支持硬件虚拟化 root@shwilling:~# egrep -o ' ...

  4. perl学习之:匹配修饰符/s /m

    m 是将字符串作为多行处理,s是将字符串作为单行处理,如果是s在字符串中出现的\n就相当于普通字符. 6.6. Matching Within Multiple Lines6.6.1. Problem ...

  5. Python contenttypes组件

    介绍 Django包含一个contenttypes应用程序(app),可以跟踪Django项目中安装的所有模型(Model),提供用于处理模型的高级通用接口. Contenttypes应用的核心是Co ...

  6. 算法竞赛中c++一些需要注意的错误

    1. 关于精度: 取整 除法取整: (除数为正)被除数为正时系统除法为向下取整,被除数为负时系统除法为向上取整. 向上取整(被除数非负,除数为正): 一般写法(有bug): int cal(int x ...

  7. Web自动化Selenium2环境配置中Selenium IDE的安装

    下载的firefox32.0的版本,但是在附件组件中只有selenuim IDE button,本以为这个就是selenium IDE插件,自以为是的后果就是把自己坑了.并且像一些selenium I ...

  8. 【01】CSS规范

    [01]CSS规范 []https://drafts.csswg.org/indexes/(下图)   https://www.w3.org/TR/2011/REC-CSS2-20110607/   ...

  9. c++ stack,queue,vector基本操作

    stack 的基本操作有:入栈,如例:s.push(x);出栈,如例:s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素.访问栈顶,如例:s.top()判断栈空,如例:s.empty(), ...

  10. oracle create directory

    1.新建directory的语法 CREATE [OR REPLACE] DIRECTORY directory AS 'pathname'; 例如: create or replace direct ...