细说git flow,满满的干货!

Git的优点

  1. 分布式,本地包含远程仓库所有源码,可以离线操作
  2. 便捷的分支功能,可以很方便的进行团队合作和版本控制

Git flow

Git flow 是前人经过探索总结出来的一套Git分支管理规范和流程,来保证我们在开发过程少踩一些坑。

我在网上找了敏捷的水大神画的一张图,来整体感受一下Git flow的整个流程

git flow流程

分支介绍

master 分支

master 分支上保存生成环境发布版本的代码,这个分支不进行commit修改,只能从其它分支合并,并且每次合并都打上发布的版本号,如上图所示,v0.1是项目初始化

develop 分支

develop 分支从master新建的一个分支,是我们的主开发分支,本分支包含下一个要发布的版本的所有代码。这个分支一般也不进行commit修改,主要从feature分支合并。

feature 分支

feature分支都是从develop分支新建,主要用来开发新功能,每个功能新开一个feature,保证功能的独立性。

release 分支

release 分支是用来打包测试使用,当要发布的功能都从相应的feature分支合并到develop分支上后,从develop分支新建release分支,如果测试过程中发现bug,在本分支上修复,确定后打包发布,同时合并到develop和master,打上标签保存。release 就可以删掉了,也可以选择不删掉此分支。

hotfix 分支

hotfix是用来修复上线版本BUG使用,从master分支新建,如上图,从v0.1新建了一个hotfix,修复后合并到master和develop,并且打上相应标签。

整个流程详细介绍

了解了每个分支的作用和从哪个分支新建而来之后,我们就可以仔细说说上图的整个流程了,这个流程我们先忽略hotfix分支,hotfix流程可以看上面hotfix分支介绍的内容。为了便于说明,我加入了一些标识给每个commit点。


git flow标识
  1. 在master分支上初始化项目,加入.gitignore,产生master(1)
  2. 从master(1)新建develop分支,产生develop(1)
  3. 从develop(1)新建feature2分支
  4. 从develop(2)新建feature1分支
  5. feature1分支是第一个版本要开发的功能,在feature1(2)开发完毕,这个时候需要合并到develop分支,进入release阶段,合并后产生develop(4),这个时候就可以吧feature1分支删掉了。
  6. 从develop(4)新建release分支,产生release(1),打包后给测试人员测试,然后修复测试出的bug,修复commit后产生release(2)。
  7. 把release(2)打包发布1.0版本后,保存1.0版本到master,保证后面需要修复线上bug能快速找到源码。合并到develop分支,产生develop(5),合并到develop是为了保证下一个release版本包含release(2)那些代码。分别合并后,可以选择是否删掉release分支,如果不删,也不能再在此分支上进行后续开发,后续开发只能新建分支来完成。
  8. 到此,一个完整的开发到发布的流程已完成,你可以继续下一个版本的开发,从develop(5)新建一个feature3分支。。。

!注意

  1. 分支一旦合并后,就不能再在当前分支进行开发了。比如feature1(2)合并后,继续在feature1开发,产生feature1(3)点,这是不行的,需要从develop分支新开一个feature分支才行。如果进入了release阶段,也可以直接在release分支上完善feature1的功能
  2. 在release合并到develop分支前,不能把feature2合并到develop,这样会造成混乱。


    错误操作

推荐阅读更多精彩内容

  • 学习资料pro git[https://git-scm.com/book/zh/v2]git - 简明指南[htt...
    合肥黑阅读 14,732评论 1 21
  • Git分支管理 master:主分支,当前分支上的代码随时可以直接发布,并且只能通过Pull Request从其他...
    UEUEO阅读 8,882评论 5 34
  • 1 Git Flow介绍 我们都知道, 在 git 的分支功能相对 svn 确实方便许多,而且也非常推荐使用分支来...
    七寸知架构阅读 7,385评论 20 68
  • 今天早上刷牙时,灵光一现,对于昨天的方案,不需要通过借助or或union的方式来更改sql的in了,即,可以直接生...
    buguge阅读 197评论 0 0
  • 花点心思,素食早餐一样可以很精彩! 南瓜百合羹+红椒藕丁+红糖糯米饼 毛豆葵花籽豆浆+番茄+素三丁+纯素餐包 青提...
    素之味阅读 3,365评论 1 0
  • 随俗娶个艺名名曰小鱼[害羞]07月08日打卡: 刚入职新公司,第一件事照例是自我介绍,俺刚说 大家好 我来自湖北,...
    逍遥派哈哈阅读 467评论 2 4
  • 一、关于训练 1、意志力训练 意志力训练中断的了二次,这次是第三次进行到了第10天。第一次中断是在11天的时候,第...
    点墨在进化阅读 464评论 0 1