如何利用Idea回滚代码以及Cherry-Pick部分代码

引言

大家在版本迭代过程中,是否遇到过开发好的需求,都已经合并到Master分支等待发布后,临时通知不需要上线了的情况。这个时候一般会要求只上一部分紧急功能或者别的新功能,那么这个时候就需要用到Git的Reset以及Cherry-Pick功能。

代码准备

首先我们先准备好三个分支

UAT:作为我们的开发分支(防杠:仅用于演示,UAT在日常开发过程中也不可以直接提交代码的)
Master:作为发布分支
feature-20230630-dev:作为我们的HotFix分支

初始化

首先我们从检查Master分支的代码:
在这里插入图片描述

提交feature-20230630-dev

然后切换到 feature-20230630-dev 分支,提交我们的HotFix代码
在这里插入图片描述

提交UAT

然后切换到UAT分支,UAT分支上我们模拟日常开发,进行多次代码提交
在这里插入图片描述

代码合并

然后我们将UAT代码合并到Master分支
在这里插入图片描述

代码回滚

这时候你们的产品就跑过来了,气势汹汹的跟你讲,这次发布延期了,生产上发现了一个重大BUG,需要立即修复并发布(即上文的feature-20230630-dev分支的代码),那么首先我们需要将Mater分支代码进行回退

我们选择分支origin/master,选择相应的提交记录,比如我这次要回滚的是问题1-问题4,那么我选择的提交记录应该为问题1之前的一次提交(即:初始化代码),右击选择 “Reset Current Branch To Here”
在这里插入图片描述
弹窗中,可以选择选择 “Hard”(强制)选项来完全回滚到该提交,或选择 “Soft”(软性)选项来回滚到该提交并保留更改,这里我选Hard即可

切换到Local的Mater分支,可以看到提交记录已被回滚
在这里插入图片描述
由于当前只回滚了本地的代码,这时候如果后悔了或者回滚错提交了,直接pull一下远程代码即可

推送到远程

此时如果直接使用git push,会将远程的记录merge下来,所以此时需要使用

git push --force

强制提交到远程

在这里插入图片描述

Cherry-Pick

现在就剩最后的一步了,将我们需要的代码cherry-pick到master分支,选择feature-20230630-dev
在这里插入图片描述
右击我们先要合并过去的提交,选择Cherry-Pick,即可合并该次提交到当前分支
在这里插入图片描述
最后推送到远程
在这里插入图片描述
下班!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值