项目版本管理整理

概述

版本号是一个产品的表示,在一个产品的生命周期中具有唯一性。内部的版本管理可以帮助研发、测试、产品、工程等各部门对产品执行严格的定义,避免出现因版本不一致而造成沟通问题和项目延迟。
版本管理

版本号分为四部分:主版本号.子版本号.修正版本号-SNAPSHOT

1.主版本号
当项目在进行了重大修改或局部修正累积较多,而导致项目整体发生全局变化时,主版本号加 1
2.子版本号
当项目在原有的基础上增加了部分功能时,主版本号不变,子版本号加 1,后面的版本号复位为 0,因而可以被忽略掉
3.修正版本号
当项目在进行了局部修改或 bug 修正时,主版本号和子版本号都不变,修正版本号加 1
4.当对外发布时去掉-SNAPSHOT

为规范源代码版本管理,现将各分支表述如下:

1.master分支

存放的应该是随时可供在生产环境中部署的代码
当开发活动告一段落,产生了一份新的可供部署的代码时,master分支上的代码会被更新。同时,每一次更新,都有对应的版本号标签(TAG)。
分支命名:master
该分支,由管理员负责维护,其它人只有拉取权限。来自于release分支的合并,供发版使用
生命周期:伴随着整个项目的生命周期,项目结束时结束。

2.develop分支

develop分支是每次迭代版本的共有开发分支,从最新的master分支派生(管理员操作)
当develop分支上的代码已实现了软件需求说明书中所有的功能,派生出release分支(管理员操作)
分支命名:dev-版本号
该分支,由开发人员在各自的feature分支开发完成后,合并至该分支。
生命周期:一个阶段功能开发开始到本阶段结束

3.release分支

从develop分支派生(管理员操作)
测试环境中出现的bug,统一在该分支下进行修改,并推送至远程分支。修改内容必须合并回develop分支和master分支。
分支命名惯例:release-版本号
生命周期:一个阶段功能开发结束开始,完成阶段功能测试并修复所有发现bug,合并会develop分支结束。

4.feature分支

在开发一项新的软件功能的时候使用,这个分支上的代码变更最终合并回develop分支
分支命名惯例:feature-姓名全拼-分支说明-日期 / feature-分支说明-日期
例:接到一个开发关于cc视频点播替换的任务,你需要从develop分支拉出一个分支,并命名为:release-yuruixin-ccVideo-20171117。然后在该分支下进行开发,开发结束,将该分支合并至develop分支(此时的代码必须为可运行的,不能影响到他人),合并完成删掉该特性分支。
开发人员的每一个新功能开发都应该在该类分支下进行。
生命周期:开发一个新功能开始,完成新功能开发并合并回develop分支结束。

5.hotfixes分支

在master分支发现bug时,在master的分支上派生出一个hotfixes分支,修改完成后,合并至master分支以及develop分支,合并完成,删除该hotfixes分支。
分支命名惯例:hotfixes-姓名全拼-分支说明-日期
示例:hotfixes-yuruixin-cclivebug-20171117
生命周期:发现master分支bug开始,完成master分支bug结束。

综上,开发人员需要操作的分支如下:

feature分支 (开发使用)
release分支 (测试中出现的bug修改)
hotfixes分支 (master中出现的bug修改)

整个流程如下图
项目版本管理整理git命令行操作指南
https://git-scm.com/book/zh/v1/

参考:
https://blog.csdn.net/suman35/article/details/88081302
https://blog.csdn.net/yuruixin_china/article/details/79061999

上一篇:chrome


下一篇:我的第一个springboot+vue项目启动过程记录