TECH_GIT程序员iOS入门到进阶

细说git flow,满满的干货!

2017-02-18  本文已影响780人  LJCoder

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,这样会造成混乱。


    错误操作
上一篇下一篇

猜你喜欢

热点阅读