目录

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 窗口操作说明

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: