美文网首页
GitFlow简明教程

GitFlow简明教程

作者: 文景大大 | 来源:发表于2019-05-07 21:11 被阅读0次

一、简介

GitFlow是最早诞生并得到广泛采用的一种Git工作流程,它主要包含两个长期分支和三个短期分支,在这些分支的基础上,能满足大多数的协同开发工作。

二、长期分支

2.1 master

master是主要分支,在创建代码库的时候默认就存在的,它承担着对外发布版本的职责,所以也要求其分支上的代码必须是稳定可靠的。每一个将要发布的版本都被打成一个tag,长期下来,master分支就是如下这个样子的,当需要使用某个具体的版本时,直接拉取相应版本的tag即可。

master分支

2.2 develop

develop分支是日常开发中积聚版本功能使用的,工程师总是把自己的代码合并到这个分支。经过一段时间和一定功能的积累后,就将develop分支上的内容合并到master上进行发布。它和master分支的关系如下图所示。

develop分支

develop分支并不是初始就有的,需要自己创建:

git checkout -b develop master

上述命令的意思是基于master分支创建一个名为develop的分支,并且切换到develop分支上。

当develop分支上积聚够了一个版本的内容后,可以使用如下命令将需要发布的内容合并到master分支上去:

git checkout master

git merge develop

上述命令第一步是先切换到master分支上,然后在master分支上合并develop分支上的内容,如此就完成了一个版本代码的合并。如果此时确定不需要再增加或者修改内容的话,可以给master分支当前的状态打个tag,比如:

git tag Version0.4

如此,我们就在master上新打了一个名称为“Version0.4”的tag。

三、短期分支

2.3 feature

feature分支是给各个开发人员提交自己代码使用的,每个人针对每个功能都应该新建一个相应的feature分支,然后在该分支上持续提交代码,直至这个功能完成开发。

在一个版本的开发之初,我们应该从develop分支上创建自己的feature分支:

git checkout -b feature-xxx develop

当我们开发完成后需要合并到develop分支时,执行以下操作:

git checkout develop

git merge feature-xxx

当确认无需增加和优化该功能后,删除该特性分支,继续下一个特性分支的开发即可:

git branch -d feature-xxx

feature分支与develop分支的关系如下图所示:

feature分支

2.4 release

有的时候,我们可能需要对本次版本的内容进行预发布,再根据预发布的情况做出细微的更改。

这个时候,develop分支可能已经开始下个版本内容的开发了,所以肯定不能用了,master分支又是不允许直接提交修改内容的,因此我们需要从develop上新建一个release分支,用于满足预发布的需求。

git checkout -b release-xxx develop

等到预发布确认不再需要增加或者修改内容后,需要将修改的内容同时合并到master和develop分支:

git checkout master

git merge release-xxx

git tag Version0.5

git checkout develop

git merge release-xxx

git branch -d release-xxx

如果需要的话,各个开发工程师也可以将更改的内容更新到自己的特性分支上:

git checkout feature-xxx

git pull

此时,就可以继续安心地开发了。

2.5 fixbug

版本发布后,有可能会发现Bug,这个时候,develop分支可能已经合并了下个版本中其它feature分支的内容,很明显不能在develop分支上修复Bug,再合并到master上,因为会把下个版本的内容提前发布到生产环境。这个时候,就需要基于master分支创建一个fixbug分支:

git checkout -b fixbug-xxx master

等到问题全部修复完成,再将当前分支的内容分别合并到master和develop上。同时,如果要使用master上的内容重新发布的话,再打一个tag,等到最后,再将这个fixbug分支删除:

git checkout master

git merge fixbug-xxx

git tag Version0.6

git checkout develop

git merge fixbug-xxx

git branch -d fixbug-xxx

fixbug分支与master和develop分支之间的关系如下图:

fixbug分支

此时,各位开发工程师的特性分支最好能够从develop分支上将该Bug的修复内容更新下来:

git checkout feature-xxx

git pull

此时,就可以继续安心地开发了。

四、优缺点分析

4.1 优点

  • 各个分支的作用都很清晰明确,能应付复杂的多人协作场景。

4.2 缺点

  • 分支数目多,操作略微复杂,各个分支之间的切换很是繁琐,不能满足持续发布的场景。
  • 某个已发布的稳定版本不支持在不增加内容的情况下修复Bug,这个GitLabFlow就可以支持。

相关文章

  • GitFlow简明教程

    一、简介 GitFlow是最早诞生并得到广泛采用的一种Git工作流程,它主要包含两个长期分支和三个短期分支,在这些...

  • 敏捷模式下的分支管理

    在原先的文章中已经介绍过了: 《GitFlow简明教程》[https://www.jianshu.com/p/f1...

  • OPENGL ES 教程

    Android OpenGL ES 简明开发教程一:概述Android OpenGL ES 简明开发教程二:构造O...

  • webpack 几个很棒的教程

    初学webpack,网上找到了几个简明易懂的入门教程十分感谢教程的作者! WebPack 简明学习教程 Webpa...

  • Linux 常用命令总结

    linux 命令速查手册linux 常用操作命令 sed 简明教程 awk 简明教程 常用命令 ls ...

  • Socket使用简明教程- AsyncSocket

    Socket使用简明教程- AsyncSocket

  • Markdown语法

    经常忘记,写个备忘录。简明教程1简书教程

  • pycaffe使用

    pycaffe简明文档Caffe for Python 官方教程(翻译) pycaffe使用教程 caffe添加C...

  • Shell学习

    Linux Shell基础教程 (一) (二) Linux Shell简明教程(推荐) (一) (二) Linux...

  • 【Anaconda教程02】安装Anaconda3后,conda

    【Anaconda教程02】安装Anaconda3后,conda简明使用教程? - 知乎 https://zhu...

网友评论

      本文标题:GitFlow简明教程

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