陕西队西北狼

Git分支管理实战

 Git分支管理实战:

使用了Git之后,Git确实比TFS 好用,首先它很轻巧,分支之间切换基本在秒级,分支创建也很方便,但由于方便快捷,最近我们一直在因为分支管理混乱而陷入无穷的痛苦之中,

在此痛定思痛,觉得借鉴网上一个好的方案来管理分支。

 

一、主分支:

实际开发中,主要存在两条主分支,MasterDevelop 分支,这两个分支的生命周期是整个项目周期。

他们有如下特点:

1.Masterdevelop分支自创建之后都不会删除,会随着项目的增长不断往里面添代码。

2.Master分支是Git仓库一创建就有的,是必然的,而develop分支是我们自己根据Master创建的日常开发分支。

日常开发流程如图

 

 

  • master分支:

  这个分支最为稳定,这个分支代表项目处于可发布状态,master为主线。

  • develop分支:

  作为平常开发的主流程,日常开发都在这里。

 

二、支持分支

支持分支一般有三种

  • Feature branches(功能分支,根据develop衍生出的分支), 
  • Release branches(用于发布新版本,随编号递增)
  • Hotfix branches(用于PRD 上紧急的Bug修复)

 

我们来看看这三类分支的角色作用:

  • Feature branches(功能分支) 

  这类分支,必须从develop分支上创建,开发完需merge回develop。

  这类分支例如大家都在develop分支上正开发着,然后你想去改一个东西又不怕和别人冲突,那你就自己搞一个这种分支,等开发完成之后再merge回develop。

  

 

 

 

  • Release branches(用于发布新版本,随版本号递增)

   这类分支用于发布新版本,当一个develop分支上的迭代开发完成并通过测试之后,需要创建一个带版本号的release分支,如release.V1,用于发布项目。

   这类分支,有如下特点。

  1. 当该分支还在PRE时,PRE发现Bug,可以在上面改,改完之后需merge到develop分支上。
  2. 一旦项目launch掉,这个分支也就不能再改了,要改就得按Hotfix 分支那样去改。
  3. 有大Bug耗时较长,也不建议在上面改。
  4. 一定切记,release之后,有改动需merge到develop分支上去。
  • Hotfix branches(用于PRD 上紧急的Bug修复)

  程序难免launch后出现bug,这时release分支已经merge到master了,也可能已经删掉了,develop分支又正在进行第N个版本的迭代,在哪改都无从下手,

  这时就需要根据master创建一个Hotfix branch,专门用于修改线上紧急的Bug,当修改完成后,需要使用该分支在本地测试通过之后,代码launch后,

  在将此分支merge回master,此时,develop还在进行迭代,所以需要developmaster拉一下代码,保证日常develop分支包含线上紧急的修复。

Hotfix branches示意图

  

 

 

总结整体流程如图:

 

 

 

 

 

 

 

  

 

posted @ 2019-04-12 21:43  PS-Jerry  阅读(465)  评论(0编辑  收藏  举报