使用IDEA工具处理git合并后的冲突的细节

这篇具有很好参考价值的文章主要介绍了使用IDEA工具处理git合并后的冲突的细节。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用 IDEA 处理合并(merge)

使用IDEA处理git合并如果遇到冲突,对冲突文件的不冲突部分需要处理吗?会自动将双方不冲突的部分合并吗?

比如如下,使用 IDEA 合并 branch1 到 branch2 分支,出现了冲突,如下图:
ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java

如果处理好冲突,得到如下图:
ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java

我的问题是,绿色的部分如果不更新到中间的Result里头,在点击 Apply 之后会不会丢失掉?答案是会丢失,没有冲突的部分也得你操作点一下!中间的Result就是合并后的样子!

我为什么会有这个疑问,因为我以前是习惯直接使用命令行 git merge 来合并的,合并之后搜索 <<< 来确定有冲突的位置(当然也可以查看执行 git merge 命令后会列出冲突的文件列表),以前用git merge命令都是会自动合并没有冲突的部分,所以我改成用 IDEA 的图形化工具之后有这样的疑问

下面是上述结论的实践证明
假设我们现在不将绿色无冲突的部分手工弄到中间的Result,继续点击Apply,则 IDEA 还是比较人性化给你弹出提示,告知你还有未处理完的合并
ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java
此时如果点击 Continue Merge 就相当于继续处理剩余的,如果点击 Apply Changes and Mark Resolved 就是继续(老子就要这么干)

点击 Apply Changes and Mark Resolved 后就可以看到最终的合并结果丢失了两边绿色的内容,如下图:
ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java

细节

细节1:diff算法局限性

注意到diff算法的一些局限性。本该是显示新增的,结果显示为修改。

受限于差异算法,红框里的部分其实应该识别为新增内容,但是算法无法这么智能地识别这是新方法,它以为只是第一个方法即 getProfiles() 的延伸!!你可以看到红框里最后一个 } 被认为和原getProfiles() 方法的 } 相同,如下图:
ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java

细节2:从哪里可以看到什么分支合并到什么分支

在处理冲突的页面可以看到
ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java
另外还可以从下图看出(如果有冲突,最左边的就是 “合并到” 的分支)
ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java
有时候也非常奇葩,不显示分支名,显示的revision,不知道为什么。比如如下图是合并branch2到branch1,结果branch2被现实成revision,可读性变差了!!
ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java

细节3:“a合并到b” 和 “b合并到a” 就是显示的结果反过来而已

ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java

细节4:保留左边还是右边?

合并的时候自然可以选择保留两边任意一边的,也可以两边都保留,也可以两边都不采纳。中间的Result栏你要怎么改就怎么改,反正你在Result看到的就是最终的合并后的结果

如下图,可以不采纳左右两边的,最终结果使用一个新的变量名
ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java

细节5:处理完冲突之后,有没有一键左右两边的都合并到中间?

处理完某个文件中的冲突部分后,有时候左右两边的 >> 和 << 太多了,一个个点完了左边的>>还要一个点右边的<< 太费劲了,有没有快速的一次性将左边的>>全部采纳,和一次性右边的<<全部采纳,又或者一次性将左右两边的全采纳?

其实是有的

  • 点击 “>> Left” 这个则把左边无冲突的、所有的change应用过去(这样就不需要逐个点击,同时有冲突的不会一起过去)
  • 点击 “>> Right” 这个同理把右边无冲突的、所有的change应用过去
  • 点击 “>><< All” 则相当于点击了上面的两个按钮,同样的,会把无冲突的、全部的左右的change应用

ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java

注意
1、建议还是一个个点击会比较放心,除非你真的很自信你的操作没有问题。
2、上面的操作可以通过ctrl+z或cmd+z撤销

细节6:IDEA 右下角的分支终于会自动刷新了

实测Mac版本的 IDEA Ultimate Edtion 2023.1.3,在Terminal中切换分支,右下角显示的分支终于会实时刷新了(之前在Terminal中使用git checkout myBranch 之后并不会实时变化,要等鼠标点击到别的地方的时候才会刷新)
ideal冲突如何查看对比合并,DevOps/部署/负载均衡/Maven/git,intellij-idea,git,java文章来源地址https://www.toymoban.com/news/detail-779690.html

到了这里,关于使用IDEA工具处理git合并后的冲突的细节的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • git必备知识 git使用常见问题(提交代码,合并冲突)

    git fetch 获取远程分支更新 git branch 查看本地分支 git branch -r 查看远程分支 git branch -a 查看所有分支(本地分支和远程分支) git clone 地址 克隆代码 git checkout 切换分支 git pull 同步到本地(拉) git push 推送至服务器 git checkout -b dev origin/master 基于主分支创建dev分支 git add . 添加

    2024年02月16日
    浏览(36)
  • git的分支的使用,创建分支,合并分支,删除分支,合并冲突,分支管理策略,bug分支,强制删除分支

    查看当前本地仓库中有哪些分支 HEAD所指向的分支就是当前正在工作的分支 创建一个分支 创建好了,但是目前还是指向 master 用tree命令也可以看到已经创建分支成功了 创建出来的分支,和主分支的最新记录是一样的 切换分支就是让HEAD指向我们的dev分支 我们在dev分支上堆R

    2024年02月04日
    浏览(39)
  • 用idea解决代码合并冲突

    参考文章: IDEA:idea中的Git冲突解决(非常重要) idea操作git时 合并分支+解决冲突 一、前言 1.什么事冲突? 冲突是指当你在提交或者更新代码时被合并的文件与当前文件不一致。读起来有点绕,结合下面的案例理解。 从上面对冲突的定义来看,冲突时发生在同一个文件上的

    2024年02月12日
    浏览(28)
  • Git管理神器SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决,提交PR)

    俗话说的好工欲善其事必先利其器,Git分布式版本控制系统是我们日常开发中不可或缺的。目前市面上比较流行的Git可视化管理工具有SourceTree、Github Desktop、TortoiseGit,综合网上的一些文章分析和自己的日常开发实践心得个人比较推荐开发者使用SourceTree,因为SourceTree同时支持

    2024年02月03日
    浏览(163)
  • idea中使用git合并代码

    合并全量代码: 如:需要将A分支的代码合并到B分支 操作步骤: 1、切换到A分支,pull更新代码 【git checkout A,git pull A】 2、切换到B分支,pull更新代码 【git checkout B,git pull B】 3、在A分支上右键选择merge into corrent 【git merge A】 4、提交B分支push 【git push B】 合并部分代码:

    2024年02月11日
    浏览(40)
  • IDEA工具避坑指南(十):git拉取java项目后,拉取后的工程目录下只有.git和.idea文件,没有src或java目录|拉取的maven工程不被识别为maven项目

    用以上标题,找不到合适方案,经过多篇帖子的阅读和反复尝试,遂有下文! 说明: 本机IDEA版本是2019,其他版可能略有差异。 从git上拉取项目后,目录结构如下,缺失想要的src目录 原因可能是多方面的,但是首先想到的应该是拉取工程本身就是这个目录结构。 此时就需要

    2024年02月04日
    浏览(68)
  • git合并冲突

    问题描述 原因 要合并的两个分支改动了同一份文件。 解决方法 1.查看冲突文件 2.查看冲突文件,=======上面是当前分支的代码,=======下面是要合并进来的分支代码,两者发生了冲突 3.编辑冲突文件,决定保留哪些更改,然后删除冲突标记。 4.标记文件为已解决冲突状态 5.解

    2024年04月12日
    浏览(21)
  • git 分支合并冲突解决

    已经累到不想说话了,直接上流程吧! 1、比如你想A分支合并到B分支,先把这两分支都pull一下最新代码:git pull 2、切换到要合并的分支:git checkout tougu_pan (tougu_pan 是我的B分支) 3、在 tougu_pan 分支上执行 git merge --no-ff dev 4、git status 查看本地修改,就会出现以下状态 5、如

    2024年02月10日
    浏览(41)
  • 解决git合并的冲突问题

    1.实验问题:多人协作下的合并冲突问题 1.1 实验一 实验目的: 模拟某些情况下使用git pull下拉远程仓库代码时覆盖了自己已有代码 实验步骤: 使用git clone拷贝远程仓库到本地 使用git reset --hard把本地仓库工作区,版本库都回退到很久之前的版本 使用git pull下拉远程仓库最新

    2024年02月07日
    浏览(35)
  • git代码合并、git解决冲突的方法?

    Git是一种分布式版本控制系统,它提供了多种方法来合并代码和解决冲突。下面是两个常见的场景以及对应的操作步骤: 合并分支 当我们在一个项目中有多个分支时,需要将不同分支中的代码合并到一起。假设我们有一个主分支master和一个开发分支dev,现在需要将dev分支合

    2024年02月02日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包