由于太多人问怎么撤销 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

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

最新文章

  1. Mac下安装nginx
  2. Ftp软件
  3. 修改apache上传文件大小限制
  4. Android 网络通信框架Volley简介
  5. ViewPager + Fragment实现滑动标签页
  6. socket编程(Linux)
  7. 转:UniqueID和ClientID的来源
  8. 使用jstack分析java程序cpu占用率过高
  9. Unity3D 之UGUI 图片
  10. vlist java实现-转
  11. GNU MAKE指南
  12. 自定义JQuery插件之 beforeFocus
  13. Python自动化运维之18、Python操作 MySQL、pymysql、SQLAchemy
  14. vmware桥接模式创建ubuntu虚拟机
  15. 深入设计电子计算器(一)——CPU指令集设计
  16. DxPackNet 2.视频截图和捕捉帧图片
  17. 微信小程序基础之交互操作控件
  18. Web Service进阶(三)HTTP-GET, HTTP-POST and SOAP的比较
  19. emmet-前端开发神器的几种写法
  20. hdu 1874 畅通工程续 floyed

热门文章

  1. BZOJ 3053: The Closest M Points(K-D Tree)
  2. OpenStack(queens)最小化搭建记录——控制与计算共两个节点
  3. python散记
  4. 前端基础-jQuery的最常用的的方法each、data、
  5. Bootstrap源码解读之栅格化篇
  6. net core mysql 组件记录
  7. ubuntu18 安装apache2.4 php5.6 mysql5.6
  8. UVA 400 - Unix ls (Unixls命令)
  9. 20155215宣言 实验三 敏捷开发与XP实践 实验报告
  10. 20155315庄艺霖第三次作业之Linux初体验