【Git管理篇】GitLab 版本分支管理策略(二)

我们采用目前的保留的分支体系:   master 、 develop(将feature、hotfix合到develop)、release

一、代码分支


分支


说明


创建来源分支


代码来源


目标分支


代码输入方式


生命周期


命名规则★


★master


主干分支,通常作为代码基线,所有发布的代码最终都会合并到此分支。



release、hotfix


develop


Pull request


长期


Master


★develop


开发分支,通常作为其他分支的源分支,也最终会合并回此分支



feature、

release、hotfix


develop


Pull request


长期


Develop


feature


功能分支,用于为未来的应用版本开发新的功能需求


develop


developer


develop


Merge


并入目标分支后,删除


Feature/{jira_issue_key}


★release


发布分支,用于辅助新版本发布的准备工作,例如小bug的修复,或者版本号的修改等等


develop


developer、

hotfix


Develop、master


Merge


并入目标分支后,删除


Release/{jira_issue_key}


hotfix


修复分支,用于正式版本的紧急修复


master


开发者


Develop、master、release


Merge


并入目标分支后,删除


Hotfix/{jira_issue_key}

二、功能开发


 


研发


测试


审查


创建并推送功能分支



 


 


创建 feature → develop 的 pull request



 


 


代码审查


 


 



功能测试


 



 


合并代码到开发分支


 


 



关闭pull request


 


 


三、版本发布


 


研发


测试


审查


创建并推送发布分支



 


 


创建 realease → develop 的 pull request



 


 


创建 realease → master的 pull request



 


 


审查 realease → develop 的 pull request


 


 



审查 realease → master 的 pull request


 


 



发布测试


 



 


合并代码到开发分支


 


 



合并代码到主干分支


 


 



关闭realease → develop 的 pull request


 


 



关闭realease → master 的 pull request


 


 



创建代码标签


 



 

四、Hotfix修复


 


研发


测试


审查


创建并推送修复分支



 


 


创建 hotfix → develop 的 pull request



 


 


创建 hotfix → release 的 pull request



 


 


创建 hotfix → master的 pull request



 


 


审查 hotfix → develop 的 pull request


 


 



审查 hotfix → release 的 pull request


 


 



审查 hotfix → master 的 pull request


 


 



发布测试


 



 


合并代码到开发分支


 


 



合并代码到发布分支


 


 



合并代码到主干分支


 


 



关闭hotfix → develop 的 pull request


 


 



关闭hotfix → release 的 pull request


 


 



关闭hotfix → master 的 pull request


 


 



创建代码标签


 



 

五、场景模拟

Master分支 :一定是最后一次 commit已经上线,或者 他已经顺利通过了 QA、PD、PO 的打磨锻造,分分钟拔出来上线。(ps:不用怕会祭天)

(1)常规开发

新建code库,库中 master和所有其他分支,只有项目负责人有写入权限

从code库中master克隆一个分支出来,命名为:branch_1.0.0   【develop】

开发人员在 此分支上修改,开发和自测完后,向 code库发起pull request,请求代码审查和合并

pro-master 进行代码审查、合并后,提交测试。头缺陷,继续在 branch_1.0.0 修复,然后发起pull request,如此循环,知道最后,测试完成,可以将 branch_1.0.0 上线

上线后,将此branch_1.0.0分支合并到msster,并给branch_1.0.0打上tag。  【ps:理论上,此时的 master和branch_1.0.0是完全一致的】

(2)并行开发

假定:branch_1.0.1 和 branch_1.0.2 同时并行开发

情况:

第一种:  branch_1.0.1 先开发完,测试完,上线完之后,branch_1.0.2 才准备提测。 此时,需要在合并测试版本branch_1.0.2时,将master内容一起合并,合并之后再进行测试

第二种:  branch_1.0.1 和 branch_1.0.2 同时开发完,可以合并成一个release版本, 或者 合并成到 branch_1.0.2 进行测试

第三种: branch_1.0.1 开发完,测试完,未上线,branch_1.0.2 开发完,准备提测, 此时 操作和 第二种一样

第四种: branch_1.0.1 和 branch_1.0.2 都开发完,需要同时测试(不建议),只能一个分支先测试完上线,另一个分支需要合并上线后的master再次测试,上线。

参考文档:https://blog.csdn.net/BoReFrontEnd/article/details/97391441

原文地址:https://www.cnblogs.com/dongv5/p/12419276.html

时间: 2024-10-17 17:09:35

【Git管理篇】GitLab 版本分支管理策略(二)的相关文章

Git 企业中常用分支管理策略

一般企业中开发一个项目的分支策略 主分支 master 开发分支 develop 功能分支 feature 预发布分支  release bug 分支 fixbug 其它分支 other 主分支 master代码库应该有一个.且仅有一个主分支.所有提供给用户使用的正式版本,都在这个主分支上发布.说明:Git主分支的名字,默认叫做Master.它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发. 开发分支 develop主分支只用来分布重大版本,日常开发应该在另一条分支上完成.我们把开发

[转]Git分支管理策略

如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件,Git有很多优点.其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便.有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称"快照")的指针,因此非常快捷易用. 但是,太方便了也会产生副作用.如果你不加注意,很可能

Git工程开发实践(四)——Git分支管理策略

Git工程开发实践(四)--Git分支管理策略 一.Git版本管理的挑战 Git是非常优秀的版本管理工具,但面对版本管理依然有非常大得挑战.工程开发中,开发者彼此的代码协作必然带来很多问题和挑战:A.如何开始一个Feature开发,而不影响其它Feature?B.由于很容易创建新分支,分支多了如何管理,时间久了,如何知道每个分支是干什么的?C.哪些分支已经合并回了主干?D.如何进行Release的管理?开始一个Release的时候如何冻结Feature, 如何在Prepare Release的时

Git教程之分支管理之二

分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息.如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息(有分支的commit id).下面我们实战一下--no-ff(ff:fast forward)方式的git merge:首先,仍然创建并切换dev分支:修改readme.txt文件,并提交一个新的commit: 现在,我们切换回master:准

GIt分支管理策略

大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 CentOS 5.5 x86_64,Git 服务器版本:git version 1.8.2.1,客户端版本:git version 1.9.2.msysgit.0.所有软件请到这里下载:http://msysgit.github.io/. 1.前言 在上一篇博客中我们主要讲解了Git 远程仓库,相信大家对

Git的分支管理(二)

分支管理策略 git 在合并(merge)的时候有两种方式,一种是Fast forward模式,这种方式是快速模式,删除分支后,会丢掉分支信息. 另外一种是--no-ff方式(禁止Fast forward模式),Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息. Fast forward模式: $ git merge dev --no-ff方式: $ git merge --no-ff -m "merge with no-ff" dev 因为本次合

Git 最佳实践:分支管理

5月份,为统一团队git分支管理规范,刚开始准备自己写,在网上搜了下,发现不少不错的git分支管理实践.最后我为团队选择了这个git分支管理实践 A successful Git branching model ,网上有不少参考这篇文章写的中文版gitflow实践,推荐一个中文版的Git 最佳实践:分支管理. 除了团队git管理的需要,我自己在github上有重要的开源项目采用github flow,这里转载一篇关于这两种分支管理的文章:GitHub Flow & Git Flow 基于Git

分支管理策略

通常,合并分支时,如果可能,Git会用“Fast forward”模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用“Fast forward”模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息. 下面我们实战一下--no-ff方式的merge: 首先,仍然创建并切换dev分支: $ git checkout -b dev Switched to a new branch 'dev' 修改readme.txt文件,并提交一个新的commit

windows下git简单使用及分支管理使用方法

 Windows上git的简单使用 git客户端安装(略) 1)生成ssh密钥: $ ssh-keygen -t rsa -C "[email protected]"  Generating public/private rsa key pair.  Enter file in which to save the key (/c/Users/bunny/.ssh/id_rsa):  Created directory '/c/Users/bunny/.ssh'.  Enter pass