IDEA 撤销 merge 操作(详解)

这篇具有很好参考价值的文章主要介绍了IDEA 撤销 merge 操作(详解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作为一个开发者,我们都知道Git是一个非常重要的版本控制工具,尤其是在协作开发的过程中。然而,在使用Git的过程中难免会踩一些坑,今天我来给大家分享一个我曾经遇到的问题:在使用IDEA中进行merge操作后如何撤销错误的合并?

一、前言

现在有两个本地分支dev 和 master, 将 dev 合并到 master 后如何撤销?(注意:以上操作还未 push 到远程分支)

需要分两种情况讨论:

  • 合并过程中未发生冲突
  • 合并过程中发生了冲突

二、解决方案 - 通过 Git Bash 命令行解决

这里通过 git bash 命令行的方式解决我们的问题,如果习惯通过 idea 进行版本控制的可以直接看第三部分的操作,附带详细的操作图片

1、合并过程中未发生冲突

方法一:通过 git reset --mixed [commit id]

// 第一步:查看日志,获取 commit id,即下面的cc65...
// 注意:找准 commit id,我们要找的是还没有合并前的 commit,这样我们就可以直接回退到这个 commit
Git命令:git log
效果如下:
commit cc65773448f8e9d54d40288c3926e8f3d6e88961 (HEAD -> master)
Author: xxxxxxxxxxx
Date:  xxxxxxxxx
// 第二步:回退到指定 commit id,并且将回退的代码全部放入到工作区中,这种方式比较保险
// 注意:此时修改过的代码以及新增的文件还在工作区
Git命令:git reset cc65773448f8e9d54d40288c3926e8f3d6e88961 
    或 git reset --mixed cc65773448f8e9d54d40288c3926e8f3d6e88961
// 第三步:恢复所有修改过的文件
// 注意:如果有新增的文件是不会清除的,需手动删除,红色的文件就是新增的
Git命令:git checkout . 或 git restore .

方法二:通过 git reset --hard [commit id]

// 第一步:查看日志,获取 commit id,即下面的cc65...
Git命令:git log
// 第二步:回退到指定 commit id,并清空工作目录及暂存区所有修改,简单来说就是你在这个 commit id 之后的所有操作都会被清除
// 注意:该操作比较危险,新手使用该命令需谨慎,请确保你已经掌握了该命令再使用
Git命令:git reset --hard cc657...

2、合并过程中发生冲突

方法一:通过 git merge --abort

// 最安全简便的方法,回到未合并前的状态
Git命令:git merge --abort

方法二:通过 git reset --mixed [commit id]

// 第一步:查看日志
Git命令:git log
// 第二步:回退到指定 commit id,并且将回退的代码全部放入到工作区中,这种方式比较保险
// 注意:此时修改过的代码以及新增的文件还在工作区
Git命令:git reset cc65...
    或 git reset --mixed cc65...
// 第三步:恢复所有修改过的文件
// 注意:如果有新增的文件是不会清除的,需手动删除,红色的文件就是新增的
Git命令:git checkout . 或 git restore .

方法三:通过 git reset --hard [commit id]

// 第一步:查看日志,获取 commit id,即下面的cc65...
Git命令:git log
// 第二步:回退到指定 commit id,并清空工作目录及暂存区所有修改,简单来说就是你在这个 commit id 之后的所有操作都会被清除
// 注意:该操作比较危险,新手使用该命令需谨慎,请确保你已经掌握了该命令再使用
Git命令:git reset --hard cc657...

三、解决方案 - 通过 IDEA 解决(附带详细的操作图)

以下是直接通过 IDEA 解决上述问题的操作流程,由于 idea 的版本可能不同,所以你看到的操作界面可能跟我不同,不过解决思路的一样的,你找到跟我对应的操作选项即可

1、合并过程中未发生冲突

方法一:通过 git reset --soft [commit id]

IDEA 撤销 merge 操作(详解)

IDEA 撤销 merge 操作(详解)

此时按 Ctrl + k 调出提交窗口,然后 Revert 掉这些文件就可以变回未合并前的状态,具体操作如下:

IDEA 撤销 merge 操作(详解)

IDEA 撤销 merge 操作(详解)

IDEA 撤销 merge 操作(详解)

方法二:通过 git reset --hard [commit id]

注意:此操作比较危险,会清空回退前工作区以及暂存区的所有修改

IDEA 撤销 merge 操作(详解)

2、合并过程中发生冲突

当合并发生冲突时,此时处于 Merging 的状态,如果想取消合并,可以用 git merge --abort,这是最简单有效的方法,其他方法就不在这里演示了,具体操作如下

IDEA 撤销 merge 操作(详解)

补充一个知识点:IDEA 不小心关闭了解决冲突窗口,怎么重新打开?

idea 版本不同,看到的界面可能不同,不过都差不多,只要找到这个 Resolve Conflicts 就可以
IDEA 撤销 merge 操作(详解)

四、最后

以上是我总结的部分方法,但是还有很多其他的方式可以解决,比如 revert 命令,不过它会生成新的提交记录,感兴趣的读者可以去了解下这个命令,希望以上内容能对你有帮助,如有错漏之处,望指正。文章来源地址https://www.toymoban.com/news/detail-427070.html

到了这里,关于IDEA 撤销 merge 操作(详解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 作为微软开发者官方号,我们又要做点特别的事情了

    在“感谢”二字最容易说出口的日子 谢谢每一个你,像一颗颗星星一样 点亮 MSDN 微软开发者社区的技术宇宙 我们也将在这个最值得感谢的日子 做一点特别的事情 MSDN 微软开发者社区已经成立快10年了 ,相信有很多资深开发者都知道微软的老 MSDN 网站,现在开发者相关的资讯

    2024年02月09日
    浏览(36)
  • git进阶(撤销pull、撤销merge、撤销add)

    git reflog reset到某个版本 git reset --hard 91ae6ad 如果merge了其他分支代码造成了大量的冲突 想撤销本次merge如果操作 1、使用上面的reset命令撤销到上一个提交版本 2、执行以下命令直接撤销了本地合并 git merge --abort 查看每次提交的文件修改列表,和分支变化的图形信息 git log --n

    2023年04月09日
    浏览(38)
  • 作为一名iOS开发者—面对音视频这个新风口应该怎样学习才能乘风而起?

    5G时代,为何各大厂纷纷杀入音视频领域?这会是新的风口吗! 随着5G开始普及加上国内外网络资费的不断下降,音视频的前景已经越来越广阔! 大家都知道,在现在的日常生活中,视频类应用占据了我们越来越多的时间,不管是抖音、快手等短视频,还是斗鱼、虎牙这类的

    2024年02月01日
    浏览(53)
  • Linux :: vim 编辑器:详解:文本复制/粘贴/剪切/删除 与 撤销普通操作及撤销撤销操作

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 前文:已讲述了 vim 的简单基本操作,本文不再赘述直接上手操作! Linux :: 【简单开发篇 :: vim 编辑

    2024年02月06日
    浏览(49)
  • git merge 如何撤销

    如果只是 git merge 未进行其他 git 操作,可以使用 git merge --abort 撤销 如果 git merge 之后,再 git add,可以使用 git reset HEAD 或 git reset HEAD file (前者多个文件,后者单个文件) 如果 git merge 之后,再 git add 之后,再 git commit,可以使用 git reset --soft HEAD^ 或 git reset --hard HEAD^ 撤回。

    2024年02月09日
    浏览(43)
  • IDEA git 操作中的Merge和Rebase

    \\\"Merge incoming changes into the current branch\\\"和\\\"Rebase the current branch on top of incoming changes\\\"都是在Git中常用的合并分支的方式。 它们的主要区别在于合并后的分支历史记录和代码改动的顺序不同。 \\\"Merge incoming changes into the current branch\\\"会将远程分支的改动合并到当前分支的新提交中。这

    2024年02月16日
    浏览(48)
  • git忽略本地文件的修改;撤销本地merge;撤销本地commit

    有些时候在使用微服务的时候有点配置在本地有些修改,但是push的时候又不想push到远端分支上去。这个时候可以让git忽略对这几个文件的跟踪,达到不提交修改内容的效果。 1-查看哪些文件被修改了 2-让git忽略对这些文件的跟踪 3-查看是否忽略成功 4-查看所有被忽略跟踪的

    2024年02月12日
    浏览(56)
  • git merge之后,如何进行撤销

    把分支的改动合并到branch_a分支: 然后再把分支的改动也合并到branch_a分支: 合并完分支的改动之后,发现的改动不是我们需要的,也就是我们需要撤销第二次合并,保留第一次合并,该如何做呢? 假如第二合并之前第一次合并之后的commit_id为qwer1234,则使用以下命令进行h回滚

    2024年02月11日
    浏览(45)
  • git commit提交以及撤销commit操作详解

    在日常开发中,我们使用git作为版本控制工具管理分支代码,提交版本打标签十分便捷,但也经常会 遇到提交了想撤回的尴尬情况,///不过不用慌,平时养成发布版本前仔细核验的好习惯之外,还有 补救的措施,下面讲下使用git 如何提交信息,如何撤销以及修改信息等等。

    2023年04月19日
    浏览(49)
  • Git提交误操作的撤销方法和Git Flow详解

    在日常的开发中,难免会出现一些误操作,比如不小心提交了错误的代码或者不应该提交的文件。这时,我们需要知道如何撤销这些误操作,以保证代码库的稳定和整洁。同时,为了更好地管理项目的开发流程,团队通常会采用一些开发流程模型,其中Git Flow是一种常用的模

    2024年01月20日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包