git-flow使用指南

git-flow使用指南

1.简介

  • git-flow是基于Git Flow工作流模型的工具,了解Git Flow 模型。它可以使开发者更方便的进行版本的控制,使用该工具,便不需要将Git-Flow模型的命令和顺序都记在脑子里。
  • 一旦安装了git-flow,你将会拥有一些扩展命令,这些命令将会在一个预定义的顺序下执行多个操作,这就是我们的工作流程。它仅仅是非常聪明有效地把标准的 Git 命令用脚本组合了起来。

2.安装

2.1 在 Mac 安装

brew install git-flow

2.2 在 Linux 安装

sudo apt-get install git-flow

2.3 在 Windows 安装

  1. util-linux packagelibintllibiconv。进入这三个链接,把每个链接中的二进制文件下载,分别解压出getopt.exe、libint13.dll、libiconv2.dll三个文件,并复制到Git的bin目录下
  2. 将GitHub上面的git-flow资源克隆到本地(可在Git目录下执行,使生成的gitflow文件在Git目录中)
$ git clone --recursive git://github.com/nvie/gitflow.git
  1. 执行cmd命令
//Git的安装路径随着自己的不同去更改。
C:\Program Files (x86)\Git\gitflow>contrib\msysgit-install.cmd "C:\Program Files (x86)\Git"

3.初始化

$ git flow init
  • 使用该命令初始化时,会询问关于几个分支的命名,强烈建议使用默认的名字
  • 初始化之后,git-flow会自动帮你创建master分支和develop分支,并且切换到develop分支。
  • 初始化时候,项目是否已经包含一个Git仓库并不重要,这个init操作可以在已有的git仓库使用。
  • 常用情况,当仓库已经关联远程仓库,此时我们只需要执行git-flow初始化命令,就相当于执行了本地创建develop分支,拉取远程develop分支的最新内容,关联远程的develop分支。(一般远程仓库都有一个develop分支)

4.功能开发

新功能的开发是基于develop分支的

4.1 开始新功能

//分支名默认是为feature/分支名,该名字应能涵盖整个新功能
$ git flow feature start 分支名
  • 执行之后,会基于develop分支创建一个功能分支,并自动切换到该分支。

4.2 发布新功能

如果团队协作开发一个新功能,此时就有必要将本地的新功能分支推送到远程仓库

$ git flow feature publish 分支名
  • 执行之后,在远程创建该分支,以及进行关联,并切换到该分支。

4.3 取得远程的新功能分支

团队合作开发同一个新功能的时候,拉取远程的新功能分支到本地

$ git flow feature pull origin 分支名
  • 执行之后,会在本地创建一个分支,并拉取远程最新的提交,自动切换到该分支。

4.4 关联远程分支

用于本地功能分支关联远程分支,一般很少用到,前面的命令都会自动关联了。

$ git flow feature track 分支名

4.5 完成新功能

//在功能分支执行Git的原生命令,add和commit之后,执行
$ git flow feature finish 分支名
// 执行之后便可以执行原生的push,将本地的develop分支推送到远程
  • 执行该命令,会将该分支合并到develop分支,并切换回develop分支,删除该功能分支。
  • 如果是团队协作开发同一个功能的话,便执行commit命令即可,等协作共同完成之后,确定该分支不再需要了,就可以将最新的功能分支合并到develop分支,删除该分支。

5.发布

当develop分支的代码已经是一个成熟的release版本,即它已经包括了所有的新功能和必要的修复。

5.1 创建release

$ git flow release start 版本号
  • 执行之后,会在本地develop分支上创建一个release/版本号 分支,并切换到该分支。

5.2 发布release

$ git flow release publish 版本号
  • 在远程仓库创建该分支,并进行关联,其他开发者可以拉取该分支并在该分支提交内容。

5.3 取得远程的release分支

$ git flow release track 版本号
  • 执行之后,在本地创建该分支,并拉取最新的提交,关联远程。

5.4 完成release

$ git flow release finish 版本号

执行该操作会执行下面一系列操作

  • git-flow会拉取远程的最新提交。
  • release会被合并到master和develop分支。
  • release的提交会被打上标记。
  • 删除release分支,并且切换回develop分支。

6.紧急修复

6.1 创建hotfix

$ git flow hotfix start 错误名
  • 该操作会在master分支创建一个hotfix分支,并切换到该分支。
  • (如果有必要发布到远程)关于推送远程的一些处理和之前的release和feature分支处理一样,在此不再赘述。

6.2 完成修复

$ git flow hotfix finish 错误名

该操作和finish掉release分支进行的一系列操作相似。

7.回顾

  • git-flow并不会为Git扩展任何新的功能,它仅仅使用了脚本来捆绑了一系列 Git 命令来完成一些特定的工作流程。
  • 依旧可以使用Git的一些原生命令,而且push远程的操作git-flow并没有帮我们执行。
  • 使用 git-flow 并不是必须的。当积攒了一定的使用经验后,很多团队会不再需要它了。当你能正确地理解工作流程的基本组成部分和目标的之后,你完全可以定义一个属于你自己的工作流程。

欢迎关注本人博客:https://allen-yu.com/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容

  • 基于SourceTree的git-flow使用指南 1. 设置用户名 首先来设置使用git时的姓名和邮箱,随便进入...
    狂飙的蜗牛_013d阅读 2,462评论 1 2
  • 1 Git Flow介绍 我们都知道, 在 git 的分支功能相对 svn 确实方便许多,而且也非常推荐使用分支来...
    七寸知架构阅读 7,844评论 20 68
  • 十一去了港澳游,都说旅行餐不要期待美味,吃饱就好,因此我们早早做足准备,搜集了当日住宿酒店周围的各种美食,大快朵颐...
    张严心阅读 703评论 4 3
  • 这个世界上从来没有那么多的一见如故和无话不谈,不过是因为我喜欢你,所以你说的话才有意义,所以你的过去我才会关心,所...
    篁唯依阅读 407评论 0 0
  • 午睡醒来,发现自己还在青旅的床上,桌上还放着青旅前台给的两颗粽子,于是心里好一阵落寞。院子里天南海北的背包客小声诉...
    秦斌元阅读 266评论 0 0