4.如何撤销合并

如何撤销合并


如果需要回退某个合并提交,怎么办?

思路

首先要知道合并的原理(可查看《3.Git合并的原理》)
如下图是分支合并的情况(节点为提交,术语称为快照),假设需要在master上剔除iss53分支,则需要回退到C2快照,(找到iss53是从哪里切出来的,从根拔除)那么如何找到iss53是从哪个节点切出来的呢?
在这里插入图片描述

别急,在《3.Git合并的原理》中有介绍到,分支引用的原理。每个分支都有一个文件去做快照提交记录,例如图中的A分支,在.git\logs\refs\heads目录下,对应A文件中保存的第一个快照便是分支A的基础快照:
在这里插入图片描述

步骤

1.备份master分支:在master分支上新建master-copy分支;
2.找到iss53分支的基础快照C2
3.master分支上执行回退命令:
git reset —hard C2
4.master分支上补回撤销后丢失的commit:
分为两种情况:
1.期间合并了其他分支到master的commit(如果分支还在则再次合并进master)
2.期间在master上修改的commit(使用cherry pick或者create patch,注意解决冲突时要检查一遍是否是自己想要的提交内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值