zoukankan      html  css  js  c++  java
  • Git撤销某次分支的合并Merge

    原文地址:https://blog.csdn.net/feeltouch/article/details/87020141

    问题:

    某天,所有的开发文件已经在dev分支上,但是这时候,线上出了一个问题,需要及时修复,于是从master分支上,拉了一个bug分支,进行处理,master分支本应合并bug分支,结果合并了dev分支,而且还commit,并推到了远端的master分支,这时候才发现出了问题,于是乎,问题就来了

    方法一:无法强推

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

    git reset --hard commit_id
    #执行完成后,此时本地已经回退到了上一次提交的版本,但是远程仍然是被改变的版本。
    

    3.重新创建一个分支,这时候的分支就是上一次提交的代码

    git checkout -b newmaster
    

    4.推到对应的远程newmaster

    git push origin newmaster:newmaster
    

    5.这个时候相当于备份做好了,接下来就可以删除本地及远端的master分支

    git branch -d master
    git push --delete origin master
    

    6.从newmaster分支,重新在创建master分支,并推向远端

    git checkout -b master origin/newmaster
    git push master:master
    

    7.done!

    方法2:需强推远程

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

    git reset --hard commit_id
    #执行完成后,此时本地已经回退到了上一次提交的版本,但是远程仍然是被改变的版本。
    

    3.强推远程

    git push origin HEAD --force #远程提交回退
    

    4.done!

  • 相关阅读:
    洛谷—— P3353 在你窗外闪耀的星星
    洛谷—— P1238 走迷宫
    洛谷—— P1262 间谍网络
    9.8——模拟赛
    洛谷—— P1189 SEARCH
    算法
    May 22nd 2017 Week 21st Monday
    May 21st 2017 Week 21st Sunday
    May 20th 2017 Week 20th Saturday
    May 19th 2017 Week 20th Friday
  • 原文地址:https://www.cnblogs.com/meetuj/p/13208690.html
Copyright © 2011-2022 走看看