• 高效解决git中的冲突


    下载meld

    http://meldmerge.org/

    在这里插入图片描述
    下载后建议安装路径不用改,直接一路下一步即可

    配置mergetool

    解决合并之前设置 Git 使用的 diff 工具

    git config merge.tool meld
    git config merge.conflictstyle diff3
    git config mergetool.prompt false
    git config mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"
    
    • 1
    • 2
    • 3
    • 4

    要查看支持的不同差异工具,请运行以下命令

    git mergetool --tool-help
    
    • 1

    解决过程

    然后我们合并分支

    git merge master
    
    • 1

    下面的提示信息就表示发生了冲突,合并到一个文件中

    Auto-merging README.md
    CONFLICT (add/add): Merge conflict in README.md
    Automatic merge failed; fix conflicts and then commit the result.

    查看冲突文件 README.md 就会发现文件中有冲突符号

    <<<<<<<  HEAD 
    xxx
    ======== 
    xxxx
     >>>>>>>>  MASTER
    
    • 1
    • 2
    • 3
    • 4
    • 5

    如果内容少的话,我们直接手动保留需要的内容后,删除冲突符号,就可以直接保存到暂存区,然后直接push到远程仓库即可。但是如果冲突内容特别多的话,有时候我们根本不知道哪里是改的哪里。。

    因此,我们用mergetool工具来解决,

    我们运行下面的命令,它会自动弹出一个可视化工具

    git mergetool
    
    • 1

    在这里插入图片描述
    左侧是当前分支修改内容,中间是我们解决冲突保留的内容,右侧是合并分支修改的内容,我们大多情况下直接把最右侧内容全选后,复制到中间编辑区ctrl+s保存就可以直接关闭窗口了。

    然后可以再次运行下面的命令,查看分支之间的冲突信息

    git diff dev master
    
    • 1

    然后用下面的命令查看分支的状态

    git status
    
    • 1

    此时它会提示你还多了下面的一些.orig结尾的文件
    这些都是mergetool 创建的(当然我们可以配置让它不要生成这些文件)

    我们可以运行下面的命令,把这些全部清除

    git clean -f
    
    • 1

    参考地址

    https://git-scm.com/docs/git-mergetool
    https://zhuanlan.zhihu.com/p/468308445?utm_id=0

  • 相关阅读:
    4.三种方式创建springboot项目
    Gadmin企业级开发平台
    83、SpringBoot --- 下载和安装 MSYS2、 Redis
    【深度学习相关知识】
    ERP软件定价策略与模型设计
    番外 1 : Java 环境下的 selenium 搭建
    你最少用几行代码实现深拷贝?
    编译器一日一练(DIY系列之词法分析)
    JAVA面试题总结基础篇(一)(附答案)
    性能测试从0到1
  • 原文地址:https://blog.csdn.net/qq_35081380/article/details/126281286