当前位置: 首页 > backend >正文

嵌入式git分支管理策略

一、前言

本文介绍一下git代码代码维护策略,以我待的嵌入式行业为例,其他行业也是类似的策略。介绍项目代码常见的分支介绍和维护策略,比如常见的分支master、release、tag分支(hofix)、dev(feature开发) 分支。

二、常规的分支管理策略(4分支)

  • 常用的四个分支:

在这里插入图片描述

  1. master分支(上图main分支):主干分支,功能最全相对稳定,开封分支feature分支功能测试稳定后才能合回主干,主干合并集成多个feature的集合,定期集成测试,拉出release分支用于软件发布。
  1. feature_n 分支:开发分支,改动很大的功能,或者新机型等,回影响主干机型软件发布时,此时拉出开发分支feature做QA测试,QA测试完成稳定之后合并回主干分支。公司多个功能同时开发,feature分支会有多个。小的功能点开发可以直接在master分支进行,不必拉分支处理。
  2. release分支:master分支上定期QA集成测试通过之后,拉出release分支,用于软件发布此分支稳定,仅仅用于修复市场反馈问题,以及衍生机型的软件发布工作。嵌入式项目,大部分公司都是机海战术,衍生机型会很多,先对一个机型在master分支提测稳定后,再拉出新的release分支进行切换,其他衍生机型在新的release分支QA测试,然后发布。在切换到新的release分支后,旧的release分支要弃用。不断的拉出release分支,然后合并主干,再拉release分支,合并主干,不断的回滚发布。若旧release分支不弃用,会增加分支同步的工作,后续软件发布还要同步旧release分支的提交,所以建议定期收集分支使用情况。杜绝使用弃用分支的情况。
  3. hotfix分支:紧急修复某个市场反馈问题等拉出的分支,通常基于软件对应的tag分支,只针对修改的代码库拉出分支,其他库使用tag。短期使用后,迅速合并回release分支,后续QA发布仍然使用release分支。

这几个分支的修改量大小,以及稳定性如下表:

分支作用修改量稳定性
feature功能开发不稳定
master主干集成较大较稳定
release软件发布QA提测稳定
hotfix紧急修复非常小非常稳定
  • tips:

1)每轮发布软件要打上tag,并创建对应的tag repo xml。

2)release分支是以某个发布固件tag为基础拉出的分支。

三、精简的分支管理策略(2分支)

上述4个分支是从整个公司层面维护的分支情况,但是对于某个机型的开发分支,其实又分为dev分支和release分支(tag分支),开发分支和发布分支,dev分支就是该机型的主干分支。常用的是如下两个分支:

分支机型软件情况
dev该机型开发主干分支
release该机型软件发布tag分支

dev用户平时开发工作,release分支是定期QA测试后的发布分支(tag分支),使用此分支进行即可。常规使用这两个分支即可,hotfix分支一般情况下不需要,release分支也是dev分支需要定期回归到公司的主干分支。release的tag分支也是采用回滚的方式,定期回归dev分支进行和QA提测验证,合并dev分支的新功能。

在这里插入图片描述

四、tips

画上述git分支图可以使用mermaid语法,但是typora无法渲染,可以使用如下网站在线画图,语法如下:

中文mermaid网站

---
title: Git分支维护策略
---
gitGraphcommitcommitbranch "feature_n"checkout "feature_n"commitcommitcheckout maincommitbranch "release_1"checkout "release_1"commitcommitbranch "hotfix_1"commitcheckout "release_1"merge "hotfix_1"checkout mainmerge "feature_n"commitmerge "release_1"commitcommitbranch "release_2"checkout "release_2"commitcommitbranch "hotfix_2"commitcheckout "release_2"merge "hotfix_2"checkout maincommitcommitmerge "release_2"
http://www.xdnf.cn/news/19689.html

相关文章:

  • Java基础第9天总结(可变参数、Collections、斗地主)
  • 魔域服务器多少钱一个月?魔域服务器配置要求及推荐
  • Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十四天
  • 鸿蒙Next开发指南:XComponent与Progress组件的深度解析与实践
  • 在 PySpark 中解锁窗口函数的力量,实现高级数据转换
  • 数控机床相邻轨迹最大过渡速度计算方法介绍
  • 【Kubernetes】知识点2
  • 【数学建模学习笔记】时间序列分析:LSTM
  • Vue 3 + TypeScript 现代前端开发最佳实践(2025版指南)
  • 【完整源码+数据集+部署教程】PHC桩实例分割系统源码和数据集:改进yolo11-Faster-EMA
  • 黄金金融期货数据API对接技术文档
  • nmap扫描端口,netstat
  • 土地退化相关
  • Axure: 平滑折线图
  • Apache Doris:重塑湖仓一体架构的高效计算引擎
  • 文件页的预取逻辑
  • 小兔鲜儿项目
  • 树莓派网页监控
  • 从 Arm Compiler 5 迁移到 Arm Compiler 6
  • 2025 随身 WIFI 行业报告:从拼参数到重体验,华为 / 格行 / 中兴技术差异化路径解析
  • 梳理一下 @types/xxx
  • java面试中经常会问到的多线程问题有哪些(基础版)
  • think
  • ubuntu系统设置中文失败问题
  • grpc-swift-2 学习笔记
  • 均匀分布直线阵的常规波束形成方位谱和波束图
  • (Arxiv-2025)ConceptMaster:基于扩散 Transformer 模型的多概念视频定制,无需测试时微调
  • 【2025终极对决】Python三大后端框架Django vs FastAPI vs Robyn,你的选择将决定项目生死?
  • [光学原理与应用-366]:ZEMAX - 用成像原理说明人眼为什么能看清物体?
  • 两款超实用办公插件推荐:Excel聚光灯与Word公文排版