git误合并后,安全回滚实操

以下管理适用于 主分支 回滚

1. 是否遇到过,好不容易写完了代码,做好了单测,一提交发现提错分支了,暗骂一句 fuck,开始百度“误提交回滚”

2. 是否遇到过,一不小心把没测过的分支合并到 master,暗骂一句 fuck ,开始备份,恢复折腾好久。

1. 只是提交错分支,未推送 remote 的情况下好办 ,在误提交分支下, git reset --soft HEAD^ 即可回滚操作,然后再切到目标分支重新提交即可

2. 如果是第2 种情况的话, 稍有点麻烦,但也不用物理回滚,跟着我的步骤操作即可:

(首先打开官网 document 备用:Git - git-revert Documentation)

假设:

分支:

master、fea-1、 fea-2

操作过程:

合并 fea-1 到 master

再合并 fea-2 到 master

tree:

git误合并后,安全回滚实操_第1张图片

此时如果想回滚掉前一次提交, 可以使用

1. git checkout master

2. git revert ak30lsjfijejskfkcjakdssfdf -m 1

3. git commit

说明下 -m 参数:

m 指代两个 parentId 当前的顺序,以上为例:

03ff2957(1) 0fa98sjei (2)

据官网描述(这时候前面打开的官网就有用了:可以验证下我这段截图对不对, 或者有没有被官方更新过):

git误合并后,安全回滚实操_第2张图片

“如果指定了 m为1, 则恢复掉相对于 1 的修改”,我们可理解为: -m 指定谁就保留谁。

小结:

所以当出现某个 revert 被提醒有两个 parent 的时候 , 则用 -m 指定希望被保留内容的 parent 序号

参考 :

Git - git-revert Documentation

你可能感兴趣的:(git提交回滚,git)