git-flow

作者: Frank_Kivi | 来源:发表于2018-07-17 15:31 被阅读18次

版本控制对于程序开发的重要性不言而喻。现在主流应该就是git了。

做开发的同学们应该都知道需要使用版本控制,但是在实际的使用过程中总是会遇到一些问题。比如想要紧急修复线上bug,但是还有未完成的功能,无法发布等。大多数问题其实都是没有统一的工作流程或者说是工作流程不合理造成的。

当你有这些烦恼时,向你隆重推荐git-flow,你可以认为它是一个工具,我个人认为它更是一种思想,或者具体说是一套合理的方法或者工作流程。

具体的操作方法在这里就不再赘述了,可以自己安装命令行工具,也可以使用软件,比如sourceTree或者IDE的插件等。本文主要分析它的思想或者原理。

1.git-flow的初始化。

和git仓库初始化一样,在启用git-flow时需要先进行初始化,这时可以指定一些分支的名称等,建议不做任何修改。

2.分支

2.1 长期分支

在初始化项目后,自动创建两个分支,一个是develop,一个是master.

master 只能用来包括产品代码。你不能直接工作在这个 master 分支上,而是在其他指定的,独立的特性分支中(这方面我们会马上谈到)。不直接提交改动到 master 分支上也是很多工作流程的一个共同的规则。

develop 是你进行任何新的开发的基础分支。当你开始一个新的功能分支时,它将是_开发_的基础。另外,该分支也汇集所有已经完成的功能,并等待被整合到 master 分支中。

简单来说,master是最稳定方式,develop是相对稳定但是最新的分支。需要注意的是,这两个分支都是整个开发周期长期存在的,并且不能直接在这两个分支上工作,也就是说不能向这两个分支上提交代码,它们的代码都是从其它分支合并过来的。

2.2 功能分支

字面意思理解就是用于开发一个新功能的分支。在新需求来的时候,通常是从develop在检出一个feature/功能分支名 的分支来开始新的需求。有的同学可能会说为什么不在develop上直接工作呢,使用版本控制很大一部分的原因就是协同工作。 同时可能有多个feature分支在向前进,当一个完成时,其它的feature分支还没有完成,如果产品需要发布,就尴尬了。所以我们在每个需求来的时候都需要开一个feature分支,因为develop分支上有最新的代码,所以都是从这个分支上检出的。

当我们完成了一个功能,经过测试,没有什么大问题了,就可以切换到其它分支进行工作了。此时注意不要直接完成这个功能,因为我们不确定下次版本发布是否需要发布这个功能。但是我们知道完成这个功能提意思就是说把代码直接merge到develop分支上并且删除这个分支。

2.3 发布分支

当我们需要发布版本时会使用到这个分支,此时我们首先在确定要发布的内容,选择那些需要发布的功能分支,然后完成这些分支,代码自动合并到了develop,bugfix分支必须是要带上的,不需要再考虑了。然后我们在develop上就是我们需要发布的代码了,此时检出一个release分支。打包测试,修复bug。

当我们确定可以发布时,也就是这个release分支完成了。此时会把代码自动合并到develop,并且打一个tag,然后再合并到master,最后再删除这个分支。

2.4 bugfix分支

有的地方也叫hotfix分支,是用来处理线上bug的。当我们在线上有紧急的bug需要修复时,应该从master上checkout一个bugfix分支,因为master才是最稳定的,我们这次发布的目的是快速解决紧急bug而不是发布新功能,所以应该从master分支检出。

当我们完成这个分支时,代码会自动合并到develop和master,打上一个tag,最后还是删除这个分支。

3 流程

上边我们已经介绍过每个分支的功能,使用场景和最后的效果。下边我们来看图

当我们理解git-flow的思想之后,明白了它的工作流程,其实git-flow就是提供一些git命令的组合罢了,核心是它的思想。至于最后使用的具体工具是什么,都会非常轻松。

相关文章

  • git-flow

    git-flow git-flow 应该是目前流传最广的 Git 分支管理实践。git-flow 围绕的核心概念是...

  • Git 分支管理 git-flow

    git-flow git-flow 应该是目前流传最广的 Git 分支管理实践。git-flow 围绕的核心概念是...

  • git分支规范

    分支管理参考git-flow(git-flow介绍)的工作流程,但不使用git-flow。所有的分支的操作都需要手...

  • 一周学习精选(2018-10-27)

    使用 git-flow 管理分支 Using git-flow to automate your git bran...

  • Git 管理工具 Tower 的使用

    创建 git flow 点击 Git-Flow -> Enable Git-Flow 按钮 点击 configur...

  • Git流程工具 git-flow 使用心得

    git-flow这个工具非常工具,官网地址 一.下载git-flow mac下使用 brew install gi...

  • git-flow 初探

    安装git-flow 请自行搜索 -$ git flow init git-flow 模式会预设两个主分支在仓库中...

  • git-flow使用指南

    git-flow使用指南 1.简介 git-flow是基于Git Flow工作流模型的工具,了解Git Flow ...

  • 2021-10-14

    什么是 Git-flow? 简单的说,Git-flow 就是利用 Git 分支能力的开发策略之一。 可以采用 Gi...

  • Git-flow Study Note

    一、设置git-flow 二、git-flow 的模式 三、创建新的分支,用于开发新的功能 四、完成了一个功能后,...

网友评论

      本文标题:git-flow

      本文链接:https://www.haomeiwen.com/subject/npfgpftx.html