首页 > 其他分享 >多版本同时维护的 Bug 修复源代码保存方案

多版本同时维护的 Bug 修复源代码保存方案

时间:2024-05-12 15:57:37浏览次数:35  
标签:文件 修复 Patch 保存 patch 源代码 Bug

问题描述

在日常维护系统的过程中,我们经常需要修复他人提交的 Bug(因为自己写的都是 feature 嘛)。对于单个线上版本的项目,我们可以轻松地创建一个 bug 修复分支,修复完成后再将其合并到主分支即可。

然而,当系统同时存在多个线上版本时,比如 V1.0.1V1.0.2V1.0.3V1.1.0 等,或者需要针对特定版本进行定制开发时,按照原有的分支策略将导致分支数量激增,管理繁琐。

解决方案

经过深入了解问题后,我们发现需要一个更加优雅的方案来处理 bug 修复后的源代码归档工作。

我们提出了一个方案:将变更后的文件打包,并在需要时替换代码仓库中的文件。这样既保存了新文件,又避免了分支的创建。然而,该方案存在两个缺陷:

  1. 文件体积过大:无论修改了多少内容,都需要保存整个文件。
  2. 变更记录不清晰:没有记录具体进行了哪些修改,想要了解变更的内容需要与原文件进行对比。

针对上述缺陷,Git 提供了一个完美的解决方案:

我们可以使用以下命令将暂存区中的变更输出到文件中:

git diff > [patchfile]

通过这个命令,我们可以将变更内容保存到文件中。

但如何将这个文件应用到当前的代码中呢?这就需要使用下面的命令:

git am < [patchfile]

通过这条命令,我们可以将之前保存的差异应用到本地代码,实现了 bug 修复后的源代码还原。

IDEA 图形化操作

虽然前面介绍了如何通过命令行完成该操作,但现在我们通常使用 IDEA 进行开发,可以通过图形化界面完成 patch 的创建。

创建patch

  1. 打开commit,右键点击任一文件,然后选择Create Patch from Local Changes...

  1. 选择需要包含的文件,填写相关信息(这里的信息就是文件名),点击Create Patch...创建patch文件

  1. 确定保存位置,点击ok即可保存

应用patch

  1. 点击Git-Patch-Apply Patch

  2. 选择要应用的patch文件

  3. 选择需要还原的文件,点击OK即可完成

标签:文件,修复,Patch,保存,patch,源代码,Bug
From: https://www.cnblogs.com/shimeath/p/18187872

相关文章

  • 详解Redis持久化(持久化高危漏洞利用与多种对抗方案、RDB、AOF、同步手动持久化、异步
    谨防持久化+未授权访问漏洞入侵服务器CVE编号找不到,CNVD有一个:CNVD-2015-07557(国家信息安全漏洞共享平台漏洞编号)。这是我之前写过的文章,漏洞成因、影响范围、POC与对抗方案有详解:谨防利用Redis未授权访问漏洞入侵服务器RDB(RedisDatabase、全量保存,默认方式)极简概括:通过符......
  • 利用pycharm对分布式命令的设备进行debug(Vision mamba)
    背景介绍接着上次的visionmamba初步跑通,想进一步了解内部代码运行的过程,模型的工作机理,因此打算利用pycharm进行断点调试(即debug),花了半天时间终于学会了如何将控制台命令的形式传入pycharm中进行传参。在此,感谢大佬的博客,这里只是具体结合本机安装wsl2对大佬的博客进行......
  • bug模板
    项目场景:我的本地项目运行起来了,好接下来就是把我之前写的代码粘贴到home文件中,运行一下,报了170多个错问题描述报错如下图,eslint检测出来的报错如下图,eslint检测出来的原因分析:应该关闭eslint配置就行了,找了很多解决方案:找到你的vue.config.js,然后增加一行lintOnSave......
  • HBase Meta 元信息表修复实践
    作者:vivo互联网大数据团队-HuangGuihu、ChenShengzunHBase是一款开源高可靠、高可扩展性、高性能的分布式非关系型数据库,广泛应用于大数据处理、实时计算、数据存储和检索等领域。在分布式集群中,硬件故障是一种常态,硬件故障可能导致节点或者集群级别服务中断、meta表损坏......
  • 3秒修复老照片,一键智能变高清!
    你肯定有一些年代久远的老照片,以及网络下载的图片或视频,不够高清还非常模糊,如果能一键修复成高清就好了!现在推荐一款神奇的Real-ESRGAN镜像,可以将模糊老照片和视频修复成高清晰,动动手分分钟帮你一键焕新!操作指南这就马上附上!立即免费体验:https://gpumall.com/login?type=registe......
  • WIN10的BUG:语言栏快捷键重启丢失的问题(解决笔记)
    这个问题据说已存在多年,但一直没有解决:crtl+shift+del导致切换语言的热键丢失-MicrosoftCommunity经过下文的引导,发现真存在这个可能性,参照下文的方法解决W10修改输入法快捷键及快捷键BUG解决-知乎(zhihu.com)在我的电脑中是这样设置的:而这个“美式键盘”的快捷方式每次......
  • 任天堂Switch硬件修复记录
    硬件修复记录;从软件世界里走出来,硬起来朗读全文Yourbrowserdoesnotsupporttheaudioelement.有什么用你可以了解到任天堂Switch的一些硬件知识。如果愿意,你也可以动手处理你自己手上的游戏机,还可以知道日常使用过程中的注意事项,防止/避免人为损坏,至少拉长这些硬件的......
  • cinder2019#bug
    OpenStack#bug2019888处理对于2023年5月10日之后的所有OpenStack版本,需要将Nova配置为向Cinder发送服务令牌,并让Cinder接收它。这是CVE-2023-2088修复程序所要求的。有关详细信息,请参阅OSSA-2023-003。nova配置vim/etc/nova/nova.conf'''[DEFAULT]'''ser......
  • WinBUGS对多元随机波动率模型:贝叶斯估计与模型比较
    原文链接:http://tecdat.cn/?p=5312原文出处:拓端数据部落公众号  在本文中,我们通过一个名为WinBUGS的免费贝叶斯软件,可以很容易地完成基于似然的多变量随机波动率(SV)模型的估计和比较。通过拟合每周汇率的双变量时间序列数据,多变量SV模型,包括波动率中的格兰杰因果关系,时变相关......
  • GreatSQL的sp中添加新的sp_instr引入的bug解析
    GreatSQL的sp中添加新的sp_instr引入的bug解析一、问题发现在一次开发中用到的sp需要添加新的sp_instr以满足需求,但是添加了数个sp_instr以后发现执行新的sp会发生core。注:本次使用的GreatSQL8.0.32-251、sp_head.cc的init_sp_psi_keys()代码里面添加10个新的sp_instr:void......