原来我之前Cherry-Pick命令用错了方式,更好的是HotFix场景使用!

前言

这个教程基于我的个人理解和实践,所以请大家多多指教。错误之处,欢迎评论指出,方便大家也能参考.有时间的话我也很乐意及时的进行改进。如果教程中有表述不清楚的地方,也请指出,或提供建议。

背景

在日常开发流程中,我们通常遵循一定的分支管理策略,例如在dev分支上进行开发,待功能稳定并通过测试后,最终通过测试的代码会被合并到release分支准备正式发布。一旦软件版本上线,理论上该release分支的代码就应该相对稳定,但在实际情况中,难免会出现线上紧急问题需要快速修复的情况。

这就是hotfix分支发挥作用的场景。以往处理这类问题时,可能会直接从release分支复制(cherry-pick)所需的修正代码,然而,这种方式在后期合并过程中,特别是当主干dev分支对该文件也有持续更新时,容易造成merge冲突,需要逐步回溯并cherry-pick所有相关的历史修改,操作起来既复杂又耗时(以往我就是这么操作的,而且针对冲突还写过一篇文章:git之cherry-pick后再进行merge导致冲突的原因及解决方式)。

应用

而现在,借助hotfix分支策略,我们可以通过以下更为流畅的步骤解决这个问题:

  1. 当线上出现紧急bug需要立刻修复时,首先从当前的release分支 创建一个新的hotfix分支
  2. dev分支 上针对问题进行修复,并将修复后的代码正常提交至dev分支
  3. 紧接着,将dev分支 上的修复补丁通过cherry-pick的方式同步到hotfix分支上,并在此分支上进行严格的测试确认。
  4. 测试通过后,直接将hotfix分支 的内容部署上线,完成热修复工作,此时release分支 保持不变,避免了直接在release分支上做临时修复可能带来的风险。
  5. 待未来需要进行常规版本迭代时,只需将dev分支 的全部新功能和改进顺利合并到release分支,而不再受之前热修复的影响。

总结

通过引入hotfix分支,我们避免了一些不必要的冲突处理,使整个开发运维流程更为简洁和高效。

相关推荐
宋小黑17 分钟前
JDK 6到25 全版本网盘合集 (Windows + Mac + Linux)
java·后端
念何架构之路26 分钟前
Go进阶之panic
开发语言·后端·golang
先跑起来再说29 分钟前
Git 入门到实战:一篇搞懂安装、命令、远程仓库与 IDEA 集成
ide·git·后端·elasticsearch·golang·intellij-idea
码农阿豪1 小时前
Flask应用上下文问题解析与解决方案:从错误日志到完美修复
后端·python·flask
威迪斯特1 小时前
Flask:轻量级Web框架的技术本质与工程实践
前端·数据库·后端·python·flask·开发框架·核心架构
毕设源码-钟学长2 小时前
【开题答辩全过程】以 基于Springboot的扶贫众筹平台为例,包含答辩的问题和答案
java·spring boot·后端
程序员良许2 小时前
三极管推挽输出电路分析
后端·嵌入式
Java水解2 小时前
【JAVA 进阶】Spring AOP核心原理:JDK与CGLib动态代理实战解析
后端·spring
Java水解2 小时前
Spring Boot 4 升级指南:告别RestTemplate,拥抱现代HTTP客户端
spring boot·后端
宫水三叶的刷题日记2 小时前
工商银行今年的年终奖。。
后端