美文网首页
gitflow流

gitflow流

作者: 小码农CC | 来源:发表于2019-03-21 11:36 被阅读0次

Gitflow工作流

背景

目前市面管理代码的工具主要有SVN和Git两种,而Git以分布式管理最终受到广大程序员的喜爱。

主流的Git工作流有3种:

1. 集中式工作流,类似传统的SVN,没有很好的发挥Git的功效;

2. 功能分支工作流,在master分支上创建功能分支,在功能分支上开发新需求,开发完毕后,合并的master分支;这种工作流方式适合小团队的开发,如果是大的团队,这种方式会有一些小麻烦,于是有了下一个工作流;

3. Gitflow工作流,本文也主要介绍此工作流;

下面是一张Gitflow工作流的示意图:

工作方式

Gitflow工作流主要有两个分支,master和develop分支,所有的操作都围绕着两个分支来做的,这两个分支代表了研发过程中的两个重要环节:发版和开发。master是一个随时可以发版的分支,而develop是一个随时可以开发新功能的分支。接下来,配合SourceTree工具详细说明一下Gitflow在不同的阶段是如何工作的。

初始化

首相将远程代码仓库clone到本地,打开SourceTree,在右上角有一个Git Flow的按钮,单击后如图:

建议不做任何修改,直接OK。SourceTree会自动化进行一些操作,最明显的变化是多了一个develop分支。

将新建的develop分支推送到远端仓库。从此,代码库里就存在了两个永久性的分支:master和develop,未来所有的开发工作都围绕这两个分支进行派生跟合并。这两个分支也被称为“历史性”分支。

新功能开发:创建feature分支,合并feature分支

当进入开发阶段,需要开发新功能时,需要先创建一个新的分支,注意,这个分支使用develop分支作为父分支,当新功能完成后合并到develop分支,新功能提交不应该直接与master分支交互。

使用SourceTree可以很方便完成这一过程,初始化结束后,再次单击GitFlow按钮,如图,选择New Feature,然后输入分支名称。

当新功能开发完成后,需要合并分支到develop分支,这时单击GitFlow按钮,选择Finish Current按钮,使用默认设置,单击OK。

提测阶段:创建release分支,合并release分支

当开发进入到测试阶段时,需要给测试人员提供测试包,此时需要在develop创建release分支,测试阶段出现的bug,在release分支上进行修改,测试通过后,将release分支合并到develop和master分支。

使用SourceTree实现这一过程,继续单击GitFlow按钮,如图,选择New Release,然后输入分支名,单击OK。

测试结束后,合并release分支,继续单击GitFlow按钮,选择Finish Current按钮,使用默认设置,然后输入Tag名,单击OK。

确认没有冲突后,将本地推送到远程仓库。

线上维护:创建hotfix分支,合并hotfix分支

当产品通过测试后,就会发版上线。可能会遇到一个紧急问题需要解决。这时需要创建hotfix分支了,需要注意,hotfix分支是唯一从master分支fork出来的分支。修复完后,需要立即合并到master分支和develop分支,master分支应该用心的版本号打好tag。

使用SourceTree完成这一过程步骤,继续单击GitFlow按钮,如图,选择New Hotfix按钮,输入分支名称。

修改,测试,都需要在这个分支上完成。当测试通过后,合并分支,继续单击GitFlow按钮,如图,选择Finish Current按钮,输入tag名称,选择OK。

确定没有冲突后,将修改推送到远端仓库。

Git网络图如下:

至此一个完整的开发周期结束,当然上面仅仅模拟了一个简单开发周期,真正的开发一定会比较复杂,但只要按照这个流程管理代码,再复杂的开发情况,也不会出现问题。

唯一需要注意的时候,在合并代码时会出现冲突,一定要先解决冲突后再推送到远端仓库。

唯一需要注意的时候,在合并代码时会出现冲突,一定要先解决冲突后再推送到远端仓库。

唯一需要注意的时候,在合并代码时会出现冲突,一定要先解决冲突后再推送到远端仓库。

重要的事情说三遍。

如果你是喜欢终端开发的,Gitflow也提供了相应的工具。无论是GUI还是终端,Gitflow提供的是一套完善的代码管理流程,只要理解了这个流程,使用什么都可以飞。

参考:

1、Git版本控制与工作流

2、Git工作流指南:Gitflow工作流

相关文章

  • gitflow流

    Gitflow工作流 背景 目前市面管理代码的工具主要有SVN和Git两种,而Git以分布式管理最终受到广大程序员...

  • GitFlow流

    无图无真相? SourceTree里怎么用 初始化GitFlow仓库 创建一个功能 ?,mac版的按钮很难找,直接...

  • 【学了就忘】Git介绍 — 6.Git的协作模式(二)

    4、GitFlow 工作流(最流行) Gitflow工作流没有用超出上面功能分支工作流的概念和命令,而是为不同的分...

  • git分支解析

    Git工作流指南:Gitflow工作流 http://blog.jobbole.com/76867/ develo...

  • gitflow 与 fastlane 以及自动化的思考

    gitflow是团队协作中常用的工作流指南. 我们在工作中按照gitflow的工作流来进行分支管理的话, 整个开发...

  • GitFlow工作流程

    什么是Gitflow Gitflow是基于Git的强大分支能力所构建的一套软件开发工作流,最早由Vincent D...

  • Gitflow工作流

    前言 最近换了一个新公司,因为之前做过几年的开发,也有过一定的管理经验,所以公司很器重,也希望自己能改善公司iOS...

  • Gitflow工作流

    Q: 为什么需要develop分支A: 避免没完成, 待测试的代码影响到master版本, 保证master分支的...

  • Gitflow工作流

    汗颜,之前的大项目团队合作都是用svn,之后在搞休闲游戏的时候虽然也用到了git,但都是单兵项目组,所以就非常矬的...

  • gitflow工作流

    为什么要使用GitFlow工作流 主要因为我们的生产过程是比较复杂的,软件生产中会有各式各样的问题,并要面对不同的...

网友评论

      本文标题:gitflow流

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