Git开发、发布流程

项目的规模都是有小到大,从单一模块开发,到多个模块并行开发;从多个模块开发完成集中测试发布,到模块可配置测试发布。这些开发和发布流程都少不了版本管理工具。版本管理工具有很多种,从刚开始工作接触到的CVS到SVN到现在用的GIT,由于目前公司用的是GIT,所以分享一下公司现在GIT的开发和发布流程。

平安健康Git开发、发布流程

Master

master永远都是发布版本的最新代码。
master永远都是通过合并分支来改变,不允许提交代码。
master发布完需要添加标签,标签为当前的版本号。
这样做的好处是为了更清楚的找到每个版本对应的代码,如果以后想做热修复可以直接将对应版本号的标签分支出来修改。

Vx.x.x_Develop

当有新版本需要开发,从Master上建分支并且修改代码的VersionName和VersionCode提交。
例如:现在开发V1.7.0,我们从Master上拉取分支创建V1.7.0_Develop.不允许在develop分支上直接修改代码进行提交,develop只能通过合并module和hot_fix分支进行改变,这样才能解决动态发布。

Vx.x.x_Release

这个分支是和Develop分支一样都从Master上建分支并且修改代码的VersionName和VersionCode提交。这个分支的作用主要是解决动态发布。什么是动态发布,举个栗子:假如并行开发两个功能模块moduleA、moduleB,在测试完成准备发布同时,由于公司层面或者一些其他原因导致moduleB不能上线,只单独上线moduleA。这样我们将moduleA分支合并到Vx.x.x_Release分支,由于代码的修改只在各自的module分支上进行修改,所以合并之后的Vx.x.x_Release+moduleA就是经过测试可以发布代码,经过简单的回归测试就可以进行发布了,发布之后将Vx.x.x_Release合并到master上并且添加当前发布版本号的标签。

Vx.x.x_Hot_Fix

hot_fix是用来做线上版本热修复的分支,一般都是从master分支出来的。假如要修改V1.7.0的bug,就从master标签为V1.7.0拉出来hot_fix分支,进行修改代码、测试,发布补丁包之后将hot_fix合并到master和develop上,保持master和develop是最新的代码,最后删除hot_fix分支。

Vx.x.x_ModuleX

根据功能进行分支moduleA、moduleB、moduleC等等,如果存在develop分支那么就在它上分支出来,如果develop不存在那么就在master上拉出分支。在开发测试阶段任何对代码的修改都需要在各自的module上进行,修改完成在合并到develop上进行测试,当版本发布了删除对应的module分支。

总结:

以上开发、测试、发布流程不是最好的但是能解决我们公司当前的多模块并行开发,选择模块上线发布的需求,如果有好的建议大家可以一起分享。
注意:不允许在develop上进行修改代码提交,更禁止在master上对代码进行修改提交。develop只允许通过合并module和hot_fix分支进行修改,master只允许通过合并发布之后的develop和发布之后的hot_fix分支进行修改。

你可能感兴趣的:(Git开发、发布流程)