Git分支管理实战:
使用了Git之后,Git确实比TFS 好用,首先它很轻巧,分支之间切换基本在秒级,分支创建也很方便,但由于方便快捷,最近我们一直在因为分支管理混乱而陷入无穷的痛苦之中,
在此痛定思痛,觉得借鉴网上一个好的方案来管理分支。
一、主分支:
实际开发中,主要存在两条主分支,Master和Develop 分支,这两个分支的生命周期是整个项目周期。
他们有如下特点:
1.Master和develop分支自创建之后都不会删除,会随着项目的增长不断往里面添代码。
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,用于发布项目。
这类分支,有如下特点。
- 当该分支还在PRE时,PRE发现Bug,可以在上面改,改完之后需merge到develop分支上。
- 一旦项目launch掉,这个分支也就不能再改了,要改就得按Hotfix 分*样去改。
- 有大Bug耗时较长,也不建议在上面改。
- 一定切记,release之后,有改动需merge到develop分支上去。
- Hotfix branches(用于PRD 上紧急的Bug修复)
程序难免launch后出现bug,这时release分支已经merge到master了,也可能已经删掉了,develop分支又正在进行第N个版本的迭代,在哪改都无从下手,
这时就需要根据master创建一个Hotfix branch,专门用于修改线上紧急的Bug,当修改完成后,需要使用该分支在本地测试通过之后,代码launch后,
在将此分支merge回master,此时,develop还在进行迭代,所以需要develop从master拉一下代码,保证日常develop分支包含线上紧急的修复。
Hotfix branches示意图
总结整体流程如图: