zoukankan      html  css  js  c++  java
  • 撤销 git merge

    由于太多人问怎么撤销 merge 了,于是 git 官方出了这份教程,表示在 git 现有的思想体系下怎么达到撤销 merge 的目标。

    方法一,reset 到 merge 前的版本,然后再重做接下来的操作,要求每个合作者都晓得怎么将本地的 HEAD 都回滚回去:

    $ git checkout 【行merge操作时所在的分支】
    $ git reset --hard 【merge前的版本号】

    方法二,当 merge 以后还有别的操作和改动时,git 正好也有办法能撤销 merge,用 git revert:

    $ git revert -m 【要撤销的那条merge线的编号,从1开始计算(怎么看哪条线是几啊?)】 【merge前的版本号】
    Finished one revert.
    [master 88edd6d] Revert "Merge branch 'jk/post-checkout'"
     1 files changed, 0 insertions(+), 2 deletions(-)

    这样会创建新的 commit 来抵消对应的 merge 操作,而且以后 git merge 【那个编号所代表的分支】 会提示:

    Already up-to-date.

    因为使用方法二会让 git 误以为这个分支的东西都是咱们不想要的。

    方法三,怎么撤销方法二:

    $ git revert 【方法二撤销merge时提交的commit的版本号,这里是88edd6d】
    Finished one revert.
    [master 268e243] Revert "Revert "Merge branch 'jk/post-checkout'""
     1 files changed, 2 insertions(+), 0 deletions(-)

    这样就行了,可以正常 merge 了,不过可能会有很多冲突噢!!

    $ git merge jk/post-checkout
    Auto-merging test.txt
    Merge made by recursive.
     test.txt |    1 +
     1 files changed, 1 insertions(+), 0 deletions(-)

    方法4

    前端天天用 WebStorm 写代码的看过来: WebStorm 右键点击项目文件或文件夹,有一个:

    Local History -> Show History

    点开后出现一个窗口,可以看到所有的本地改动。找到合适的那份,按左上角那个:

    Revert

    按钮,也就是个紫色的弯曲的小箭头就回去了。在文件量不大的时候十分管用,强烈推荐。

  • 相关阅读:
    sourceTree免密码校验
    elasticsearch 服务安全配置
    qconf 介绍
    解决mysql不能远程登录的问题
    从git上下载代码并导入eclipse
    MAVEN 工程打包resources目录外的更多资源文件
    也谈BIO | NIO | AIO (Java版--转)
    web.xml 配置中classpath: 与classpath*:的区别
    Java @override报错的解决方法
    maven上传自定义jar到本地仓库
  • 原文地址:https://www.cnblogs.com/wennice/p/7389626.html
Copyright © 2011-2022 走看看