【Git】撤销分支的合并Merge

背景

某次,因为蛋疼的原因,不小心把不该合并的分支合到了dev或者master分支,影响到了需求上线或其他。这时候就需要撤销某次的合并了。

解决方案

方案一

1、找到最后一次提交到master分支的commit_id,即merge前的commit_id,也就是目标要回退到的commit_id。

本图为Idea 2021.3 版本查看commit_id的方式。(点开git提交历史,查看代码改动的时候,左边的剪头指的那个)
在这里插入图片描述

2、在当前分支,打开终端,执行命令回退 git reset --hard commit_id

注:执行完以后,本地为回退分支,远程扔为被改变的分支

3、从当前的分支重新拉一个分支,并将拉好的新分支推到远程(newmaster)。

git checkout -b newmaster

4、将拉好的新分支推到远程。
5、将原来的本地分支和远程的分支删除(master)。
6、将远程的newmaster分支改名为master(也就是相当于替换了一下)。
7、结束。

方案二

1、找到最后一次提交到master分支的commit_id,即merge前的commit_id,也就是目标要回退到的commit_id。
在这里插入图片描述
2、在当前分支,打开终端,执行命令回退 git reset --hard commit_id

注:执行完以后,本地为回退分支,远程仍为被改变的分支

3、将回退好的分支强推到远程。

git push origin HEAD --force

4、结束。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注