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日
    浏览(8)
  • git进阶(撤销pull、撤销merge、撤销add)

    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日
    浏览(14)
  • 作为一名iOS开发者—面对音视频这个新风口应该怎样学习才能乘风而起?

    作为一名iOS开发者—面对音视频这个新风口应该怎样学习才能乘风而起?

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

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

    Linux :: vim 编辑器:详解:文本复制/粘贴/剪切/删除 与 撤销普通操作及撤销撤销操作

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

    2024年02月06日
    浏览(17)
  • 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日
    浏览(8)
  • IDEA git 操作中的Merge和Rebase

    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日
    浏览(9)
  • git忽略本地文件的修改;撤销本地merge;撤销本地commit

    git忽略本地文件的修改;撤销本地merge;撤销本地commit

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

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

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

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

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

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

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

    2024年01月20日
    浏览(5)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包