解决git revert后再次merge代码丢失问题

当产品决定延迟上线新功能时,使用git revert撤销MR后,下次合并时原始更改丢失。为恢复这些更改,需创建临时分支,再次revert revert操作,然后合并回开发分支并提交。该过程确保了代码历史的完整性和合并的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题场景

公司使用gitlab作为代码管理工具,开发人员新功能开发结束时(开发分支:feature-member),合并代码需要提交mr(pr)给相关负责人,由负责人将代码合并到master。此时产品说暂时不上线此版本,和下一个版本一起发布,为了保证master分支代码的准确性,我们使用git revert将本次mr撤销。
然后等下个版本开发完成后,提交了mr,发现变动的文件只有revert之后的变动,第一次mr的文件改动都没有了(git revert后再次merge,git默认会丢弃这段代码)。

解决方案

# 切换到master分支
git checkout master
git pull
# 基于master拉出一个分支 revert_tmp
git checkout -b revert_tmp

# 将之前git revert那次commit再次revert(commit号从git log可以查到)
git revert acd414e1cd42315ce93a9730db961155be140013
git checkout feature-member
git merge revert_tmp
git commit -m "revert"
git push

经过以上操作后,再次提pr,这样第一次revert之前的代码就可以看到了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值