原来我之前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分支,我们避免了一些不必要的冲突处理,使整个开发运维流程更为简洁和高效。

相关推荐
苏三说技术22 分钟前
如何看待GPT-6在UP主众测中碾压夺冠?它是现在最强大模型吗?
后端
mldong41 分钟前
一份 JSON,一条能跑的审批流:把报销流程送上工作流引擎
后端·架构
wno70442 分钟前
Spring Boot WebFlux增删改查
java·spring boot·后端
Captaincc1 小时前
AI用量v0.1.11更新发布 新增 jusage doctor 诊断指令 托盘展示token 和余额 新增 AutoClaw 支持
前端·后端·vibecoding
拼图2091 小时前
Git常用语法
分布式·git·学习
aramae2 小时前
模拟实现strlen()函数 (C语言)
c语言·开发语言·后端
IT_陈寒3 小时前
Python的GIL把我坑惨了,多线程跑得比单线程还慢
前端·人工智能·后端
分支预测失败3 小时前
RISC-V 时间子系统深度专题:mtime 访问路径、SBI 定时器与 Linux tickless 协同
后端
65岁退休Coder3 小时前
PI Agent 开发一个生产级 Harness
后端·node.js·agent
用户8356290780513 小时前
如何使用 Python 给 Word 文档添加水印
后端·python