git管理历险记

2024-09-05 10:36
文章标签 管理 git 历险记

本文主要是介绍git管理历险记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本篇文章主要是记录一下公司内git管理策略的变更,又如何因地制宜的磨合出适合团队的方法论,以便未来的职业生涯遇到类似的问题可以稍微触类旁通下。

传统git策略

dev -> test -> pre -> main

这也是比较经典的一个环境对应一个分支,许多没有并行开发需求的公司都会使用这个。

但是开始并行开发多个需求就遇到了问题:

所有代码都在环境分支上开发,可能导致dev、test分支修改过多堆积,真要上pre或生产时总要花费很多精力去整理或解决冲突。

并且,如果原本说好一起上的多个需求,有某个需要先上则会需要再单独切分支处理,测试的时候环境也需要单独切到这个分支使用,非常麻烦。

解决方案:

  1. 每个功能都有单独的分支
  2. 在test可以替换为feature-join分支 *
  3. 收回随意修改部署环境分支的权限

*: feature-join为集成测试分支,用于多个需求同时测试但是不同时上线的情况。

最终流程为:

基于main签出新的功能分支 -> test/feature-join -> pre -> main

更适应变化的策略

经过调整冲突比之前少了,但是只是少了dev的部分冲突,在test和pre上还是会存在分支环境不同导致的合并问题。正好公司在推行敏捷开发,以迭代形式上新功能及修复,正好以另一种方式改动策略。

如下图:
在这里插入图片描述

前提:目前我司只有两个环境供使用、实行敏捷开发有极多并行开发的合并操作、有许多提前上线需求、需求不清晰

基于这些前提,我们能确定是一定要能够尽可能不影响单独功能上线以及解决并行开发冲突

先来解释下图中各个步骤:

第一,也是最核心的一点,从main签出一条publishable分支,使用这个分支当防腐层的作用,只有确定上线的需求才会合到这个分支。

第二,从刚签出的publishable分支签出一条迭代分支,在敏捷开发的一个版本迭代功能需求,全部都会合到这个分支里。

第三,从刚签出的迭代分支,签出自己开发的功能分支,功能分支开发完成后合到迭代分支上面一起上环境测。

如果有紧急的生产bug需要处理,则是从publishable拉hotfix新分支修改,然后hotfix合到预生产测试。

如果要上生产,则是先将对应分支先合到pubulishable,再确认,然后publishable再合到main。

其实跟dev-pre-main-release这种有共通之处,只不过充当防腐层的分支换了个名字,毕竟在分支管理的策略上其实来来回回也就那么几个操作。但是还有种上家使用的分支策略可以推荐给大家

较严谨的策略

这种策略就是维护一个长期分支 release,流程大概为:

从release拉出新分支,基于上一个已打出的版本,判断更新重要性增加版本,如:2.0.1 -> 2.0.2/2.1.0 等,使用三段式版本,大家都在这个版本分支上开发。

测试预生产和生产也都使用版本分支上环境,上生产时会合一份进release。

因为这种策略基本只是用一个分支,所以对于团队对每个迭代的工作量把控要求很高、不能有很多需求变化,但也最大程度避免了合并的问题,即使有冲突也会第一时间解决,合并出了问题每次上环境都会极快暴露并修复。

总结

那么可以稍微比较一下:

如果团队较小,项目不大,那么直接传统策略就好了,一般也碰不上冲突。就开发工期长变化大的时候开分支都行。

如果团队较大,对于项目开发的需求不明确,时常有部分需求先上或不上的情况,那么就用适应变化的敏捷策略。

如果对项目开发需求很清晰,工期也把控的准,对外交付可以版本迭代的形式,那么更推荐严谨的敏捷策略。

这篇关于git管理历险记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138720

相关文章

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen