zoukankan      html  css  js  c++  java
  • git,如何 撤销某一次历史提交或merge,并保留该版本的后续提交?

    场景1:

      你有两个功能迭代版本的分支,一个是 15 号上线,一个是25号上线。5号的时候产品突然说,这两个版本一起上,然后你耿直的把25号版本merge到了15号版本。

    几天后产品说:“一起上有问题,我们还是分开上吧”。这个时候你发现merge之后又提交了很多15号版本的代码,需要撤销那次merge并且保留后面的提交。

    场景2:

      所有人共用 test 分支,有五个人都在这上面合并了自己的代码,结果有天 A 不小心把 develop 分支合并到了 test,过了一会 A 发现,并且想撤回的时候,发现再次期间,有好几个人都提交了代码。所以不能用reset,而是需要撤销merge并且保留后面更改。

    有两种办法:

    一、git rebase 变基

    git log 找到那个merge的commitId

    git rebase -i commitID   

    将这个commitID前面的pick改为d   

    保存并退出   

    如果冲突,先解决然后 git rebase --continue

    如果想撤销整个操作 git rebase --abort

    多人协作时,不要用变基,commit 会造成混乱,出现很多两次的commit 信息

    二、git revert

    git revert -m 1 commitId

  • 相关阅读:
    高斯消元法求逆矩阵
    二分法
    Boost库
    sorts
    排序算法_HeapSort
    粒子系统之概述_20140101
    新年祝福!_20140101
    思维_逆向的魅力2_20131229
    思维_逆向的魅力_20131229
    编码能力的提升?_20131228
  • 原文地址:https://www.cnblogs.com/ly0612/p/12593897.html
Copyright © 2011-2022 走看看