解决git代码冲突之强大利器kdiff3工具配置与使用

目录

1. 简介

2. 安装

3. 配置

4. 使用


1. 简介

      KDiff3是一款用来对文件或目录进行比较/合并的工具,在比较时它可以同时针对两个或者三个文件/目录而进行。通过比较,它将文件/目录的差异按行加以显示。同时,KDiff3 提供有自动化的合并工具,方便使用者进行有关合并的操作。

2. 安装

win10:

官网左边找到Download,下载双击安装。

Linux(Debian Ubuntu 18.04):

sudo apt-get install kdiff3

Linux(Centos 7):

sudo yum -y kdiff3

3. 配置

win10:

git config --global --add merge.tool kdiff3
git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe" #我默认安装的位置
git config --global --add mergetool.kdiff3.trustExitCode false

git config --global --add diff.guitool kdiff3
git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"  #我默认安装的位置
git config --global --add difftool.kdiff3.trustExitCode false

Linux:

git config --global --add merge.tool kdiff3
git config --global --add mergetool.kdiff3.path "/usr/bin/diff3"
git config --global --add mergetool.kdiff3.trustExitCode false

git config --global --add diff.guitool kdiff3
git config --global --add difftool.kdiff3.path "/usr/bin/diff3"
git config --global --add difftool.kdiff3.trustExitCode false

4. 使用

diff

# 将某个文件的当前版本和代码库中的版本做比较
git difftool main.c

# 将某个文件的当前版本,和某个分支中这个文件的版本做比较
git difftool some-branch script.js

# 将两个tag中的某个文件做比较
git difftool tag1..tag2 style.css

# 比较两个分支
git difftool branch1 branch2

merge:

如果是pull下来之后有冲突,直接执行git mergetool后,git mergetool可以自动智能合并一些冲突,剩下的不能智能合并的,需手动执行合并,如下:

  • A: Base 当前文件与将要合并文件的共同部分即后面提到的B:Local 和C:Remote共同祖先,即上图中的左上小窗口。
  • B:Local 你当前正在更改的分支版本,即上图中的中间小窗口。
  • C:Remote 他人更改的版本,即上图中的右上小窗口。
  • Output : 合并后的新文件,即上图中的下部小窗口。
  • A: Base是B:Local和C:Remote共同祖先,即最开始时B:Local和C:Remote都是从A: Base更改而来的。

        只需要在Output窗口进行右键A B C 选择即可解决conflicts,并且有的已经帮你自动选择好了,可能情况下只需要你点击菜单栏的 unsolved conflicts,进行选择即可。动图如下:

 说明:

  • 在冲突处单击右键选择“Select Line(s) From A”,表示用A: Base即共同祖先代码作为最终输出代码。
  • 在冲突处单击右键选择“Select Line(s) From B”,表示用B:Local即你当前正在更改的分支版本代码作为最终输出代码。
  • 在冲突处单击右键选择“Select Line(s) From C”,表示用C:Remote即他人更改的版本代码作为最终输出代码。

       完成本次冲突处理后,单击工具栏跳到下一处出冲突按钮,处理下一处冲突,反复如此,直到处理完所有冲突,保存或退出时保存就可以解决所有冲突。

       使用kdiff3合并代码会创建backup文件,*.orig,每个文件都会有一个对应的orig文件,大多数情况该文件并没有用,有两种方案解决这些残留的无用文件

  • 在.gitingore文件中添加*.orig。
  • 执行如下配置:
git config --global mergetool.keepBackup false
杜绝生成orig文件。

参考链接:

Git学习笔记--- diff工具 kdiff3

KDiff3 merge conflict 窗口操作说明

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值