Git业务实践记录

news/2024/11/18 14:00:58/

您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~

场景描述

最近在开发一个新的功能,和往常一样先建了一个分支进行开发,开发到周期60%的时候,后端临时通知需要将大功能中的A、B、C三个功能拆分三个迭代分别发布,于是拆分成了三个迭代,后来因为业务上下游支持的因素,并且三块功能堆在一个时间点测试,预发环境只能部署一个分支的版本,所以还是需要将三个分支集成到一个迭代去发布,记录一下整个解决过程和思路。

版本生命周期图

image.png

整个开发步骤如下:

  • 在开发阶段,保持三个分支,分别开发联调对应功能;
  • 在预发测试阶段,得到通知需要三合一发布;
  • 单独建临时分支,rebase三个子分支代码,部署在预发环境,暂时解决多功能不同测试预发验收的问题;
  • 修复测试验收BUG,切到对应功能子分支解决问题,push到子分支 + cherry-pick到临时分支,保证临时分支和原分支代码归一;
  • 部署阶段,选择性部署,子分支分别灰度 or 临时分支直接灰度都可以,保留子分支代码就是为了到部署阶段又变成了功能分别上线emmm;

主要原因也是因为我司的构建平台暂不支持同项目集成多分支,在预发上测试。

image.png

并且多个测试需要在一天三个功能,需要集成在同一个预发版本中。

而在部署阶段保留两种情况也是为了防止意外,如果又需要三个分支分别部署,前端就不可逆了,在临时分支中回滚会去除创建临时分支后所提的commit。

总结

本文记录了博主在工作中遇到的分支管理的实际场景,如果对于这种场景,你有更好的解决方案,留言一起讨论哦~


http://www.ppmy.cn/news/91881.html

相关文章

国内最佳的客服系统Tidio替代品是什么?

许多做跨境电商的企业都知道,Tidio是一款不错的为电子商务量身定制的全渠道客服系统支持工具,但还有其他同样不错的选择。 当前许多同类型产品以迎合欧美客户居多,中国用户使用不惯;免费版体验门槛高;只支持海外支付方…

基于C#制作一个ChatGPT桌面助手

基于C#制作一个ChatGPT桌面助手,在工作或者学习时提升自己的效率,工欲善其事,必先利其器。 一、前言1.1、什么是ChatGPT1.2、ChatGPT官网及key申请二、后台项目2.1、项目创建2.2、界面设置2.3、获取版本2.4、发送信息一、前言 1.1、什么是ChatGPT ChatGPT(全名:Chat Gene…

【算法】【算法杂谈】有序旋转数组中找到指定的数

目录 前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本 思考感悟写在最后 前言 当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识! 问题介…

新产品上线前需要准备哪些产品文档呢

新产品上线前需要准备的产品文档非常重要,不仅有助于产品的开发过程中沟通和协作,而且对于后期的维护和升级也起到十分重要的作用。下面详细介绍新产品上线前需要准备哪些产品文档。 一、市场需求文档 市场需求文档(Market Requirement Doc…

数据结构中“树”的全面讲解

文章目录 一、树结构的定义与对比二、树的存储结构是什么,都有哪些存储结构?双亲表示法:孩子表示法:孩子兄弟表示法: 一、树结构的定义与对比 ​ 树结构是一种一对多的非线性结构,它是由n(n>…

nest日志包pino、winston配置-懒人的折腾

nest日志 三种node服务端日志选型 winstonpinolog4js 2023年5月23日 看star数:winston > pino > log4js 使用体验: pino 格式简洁,速度快,支持输入日志到任意数据库,日志暂无自动清理(可能是我…

使用本地的chatGLM

打开终端 wsl -d Ubuntu conda activate chatglm cd cd ChatGLM-6B python3 cli_demo.py 依次输入以上命令。

89.qt qml-WorkerScript多线程使用(无需C++代码)

由于我们自定义Table中需要实现排序,如下图所示: 考虑到如果数据量太大的情况,为了避免主线程阻塞,所以我们添加多线程排序功能,为了方便大家更好学习qml组件,所以学习WorkerScript实现多线程,无需C++ 1.描述 使用 WorkerScript 在新线程中运行操作。这对于在后台运行操…