目录
💡 Linux 命令行的对比工具
一. diff
二. vimdiff命令
💡 GUI 比对工具
三. WinMerge
四. Diffuse
五. Code Compare
六. Beyond Compare
七. UltraCompare
八. Altova DiffDog
九. Kompare
十. Meld
十一. XXdiff
十二. KDiff3
十三. TkDiff
💡 在线文本比较工具
十四. jq22
💡 其他 | 已停止更新的对比工具
十五. DiffMerge
十六. AptDiff
十七. TextDiff
程序开发的过程中,我们经常会遇到需要对一个文件的不同版本进行比较,以了解其差异,特别是代码文件。比如,在两个不同的github仓库之间merge代码,如果人工去对比查看,势必费时实力还会出现纰漏和错误,因此,我们需要借助一些代码比较的工具来自动完成这些工作。
目前市面上能见到的代码比对工具,本文已基本涵盖,供大家参考!
💡 Linux 命令行的对比工具
一. diff
diff 命令是 Linux 下自带的一个强大的文本比对工具,而且使用起来非常方便。而且它在大多数的 Linux 发行版里已经预装了,它可以逐行比对两个文本文件,并输出它们的差异点。更多介绍可以直接查看它的 man 手册。
$ man diff
但是,diff 命令虽然强大,但它的输出结果实在是太感人了,不直观也不清晰。于是,有大佬为了弥补这个缺点,基于 diff 开发了更强大的工具。这里推荐两个:colordiff 和 wdiff 。
colordiff命令
colordiff 是一个 Perl 脚本工具,它的输出结果和 diff 命令一样,但是会给代码着色,并且具有语法高亮功能。同时,你如果不喜欢它的默认颜色的话,还可以自定义主题。
你可以自行安装 colordiff 到你的电脑,根据不同的发行版选择不同的安装命令。
$ yum install colordiff [On CentOS/RHEL/Fedora]
$ dnf install colordiff [On Fedora 23+ version]
$ sudo apt-get install colordiff [On Debian/Ubuntu/Mint]
同样,你可以使用 man 命令查看它的帮助文档:
$ man colordiff
wdiff命令
diff 命令是逐行比较差异,而 wdiff 更变态,是逐字比较。所以如果你的文本只是修改了少数一些词语的话,使用 wdiff 命令将更加高效。
安装命令如下:
$ yum install wdiff [On CentOS/RHEL/Fedora]
$ dnf install wdiff [On Fedora 23+ version]
$ sudo apt-get install wdiff [On Debian/Ubuntu/Mint]
更详细内容可以查看它的 man 手册。
$ man wdiff
二. vimdiff命令
vimdiff
等同于 vim -d
命令,即 Vim 编辑器的 diff 模式。
该命令后面通常会接两个或多个文件名作为参数,这些文件会同时在 Vim 编辑器的分割窗口中打开,并高亮显示文件中内容有差异的部分。
vimdiff命令中文主页:VIM 中文帮助: 编辑同一文本的两到八个版本
以上介绍的两款是 Linux 命令行的对比工具,我们再来看一些 GUI 比对工具。
💡 GUI 比对工具
三. WinMerge
WinMerge是一款免费的开源软件,可以比较文件和文件夹。它可以将不同的部分合并到一起。
WinMerge是一款运行于Windows系统下的文件比较和合并轻量级、免费工具,使用它可以非常方便地比较多个文档内容,适合程序员或者经常需要撰写文稿的朋友使用。
WinMerge会将两个文件内容做对比,并在相异之处以高亮度的方式显示,让使用者可以很快的查知;可以直接让左方的文件内容直接覆盖至右方,或者反过来也可以覆盖。
WinMerge支持文件/文件夹的比较、可以将不同的部分合并到一起、支持常规的代码、文本、图像、表格、压缩文件等文件进行比较,可视文本格式显示差异。WinMerge是Windows的开源差异和合并工具。WinMerge 可以比较文件夹和文件,以易于理解和处理的可视文本格式呈现差异。WinMerge有一个新的功能,支持三个文件同时对比。
缺点:没有高级合并功能;用户界面太简陋。
📥 官方下载地址:WinMerge - You will see the difference…
四. Diffuse
Diffuse是另外一款很受欢迎的,免费,小巧,也十分简单的 GUI 文本差异比对合并工具,它是用 Python 写成的,具有两个主要功能:文件比对及版本控制,允许文件编辑、合并,并且输出两个文件的差异点。
Diffuse在命令行中的速度是相当快的,支持像 C++、Python、Java、XML 等语言的语法高亮显示。可视化比较,非常直观,支持两相比较和三相比较。这就是说,使用 Diffuse 你可以同时比较两个或三个文本文件。
支持常见的版本控制工具,包括 CVS、subversion、git、mercurial 等,你可以通过 Diffuse 直接从版本控制系统获取源代码,以便对其进行比较和合并。
📥 官方下载地址:Diffuse download | SourceForge.net
五. Code Compare
Code Compare同样也是一款代码比较工具,支持文件和文件夹比较、合并等功能。它支持集成在源代码版本控制工具中,如:SVN、 Git、 TFS、Mercurial和Perforce等这些版本控制工具。同时,Code Compare支持集成Visual Studio 2015、 2017、 2019等开发环境中。
Code Compare是一款用于程序代码文件的比较工具,目前Code Compare支持的对比语言有:C#、C++、CSS、HTML、Java、JavaScrip等代码语言。
Code Compare的运行环境为Visual Studio,而Visual Studio可以方便所有的程序开发设计
支持Windows操作系统,有试用版、免费版和专业版
📥 官方下载地址:Code Compare Download
六. Beyond Compare
Beyond Compare 是一款功能强大,易于使用、轻量级的代码比较工具,可以比较文件夹、文本和图像。它有很多高级功能,例如,可以将不同的部分合并到一起,并可以比较文件的元数据。
Beyond Compare可以很方便地对比出两份源代码文件之间的不同之处,相差的每一个字节用颜色加以表示,查看方便,支持多种规则对比。
Beyond Compare选择最好的方法来突出不同之处,文本文件可以用语法高亮和设置比较规则的方法进行查看和编辑,适用于用于文档、源代码和HTML。
Beyond Compare支持Windows、Mac、Linux三大操作系统,同时支持多种语言,包含中文、英文、日文、德文、法文等,同时还有很多翻译版本。
优点——可以比较不同类型的文件;可以使用快捷键完成许多操作;具有高级合并功能。
缺点——与其他比较工具相比,价格相对较高;非开源软件。
提示:Beyond Compare为收费软件,提供有30天试用版,国内经销商提供的参考价格为259元(标准版)、469元(专业版)。
📥 官方下载地址:Download Beyond Compare Free Trial
📥 同时国内下载地址:Beyond Compare中文网站免费下载
七. UltraCompare
UltraCompare也是一款经典的代码比较工具,支持常规的文件、文件夹比较、合并。包含:支持源代码、Word/Excel/PDF、Zip/Rar/Jar等文件比较。
这款工具同样也是一款强大的比较工具,除了以上基本功能之外,还支持远程文件/文件夹比较、同步,三文件比较、切换主题皮肤等。
UltraCompare支持Windows、Mac和Linux三大操作系统,同时包含中、英、美、日、韩等多国语言的版本。
一款强大的工具逃不过收费这一关,UltraCompare也不例外,它是一款收费软件,但支持30天免费试用。
📥 官方下载地址:Enter your information to download UltraCompare for Windows
八. Altova DiffDog
是一款用于文件、目录、数据库模式与表格对比与合并的使用工具。
这个强大易用的对比/合并工具可以让你通过其直观的可视化界面快速比较和合并文本或源代码文件,同步目录以及比较数据库模式与表格。DiffDog还提供了先进XML的差分和编辑功能。
缺点: 付费,30天的免费试用
📥 官方下载地址:DiffDog Diff/Merge Tool | Altova
九. Kompare
Kompare是基于 diff 的一个 GUI 工具,使用者可以很方便看到文件之间的差异,并且支持合并这些差异。
Kompare 的特性有如下:
- 支持多种 diff 格式;
- 支持目录之间的比对;
- 支持读取 diff 文件;
- 自定义界面;
- 创建及应用源文件的 patch 文件。
📥 Kompare的主页:Kompare - KDE 应用程序
十. Meld
Meld 是一个轻量级且免费的 GUI 代码比对工具,它支持用户比对文件、目录,并且高度集成版本控制软件。但针对软件开发人员,它的以下几个特性尤为吸引人:
- 执行双向和三向差异并合并
- 轻松地在差异和冲突之间导航
- 逐个文件地比较两个或三个目录,显示新文件,缺失文件和更改文件
- 支持许多版本控制系统,包括 Git,Mercurial,Bazaar 和 SVN 等。
缺点:用户界面不够友好;比较速度变慢
📥 官方下载地址:Meld
十一. XXdiff
XXdiff 是一款免费、强大的文件及文件夹差异比对及合并工具,它可以运行在很多类 Unix 系统上。不过它有个限制就是它不支持 unicode 文件,也没法办法直接编辑文件。
它具有以下特性:
- 递归对比文件及文件夹
- 高亮显示差异点
- 合并差异点,导出结果
- 支持外部 diff 工具,比如:GNU diff,SIG diff ,Cleareddiff ,以及其它更多工具
- 支持脚本拓展
十二. KDiff3
KDiff3
是另外一种很强大的跨平台差异比对及合并的免费开源工具,它是由 KDevelop
开发而成,可以在所有类 Unix 平台上运行,包括 Linux ,Mac OS ,Windows 等。
它可以比对或合并两到三个文件或目录,具有以下特性:
- 可以逐句、逐字对比差异
- 支持自动合并
- 内置编辑器,可以手动解决冲突
- 支持 unicode ,UTF-8 等各种编码格式
- 支持打印差异
缺点:用户界面不够友好;比较速度变慢
📥 官方下载地址:KDiff3 - Homepage
十三. TkDiff
TkDiff 是另外一种跨平台,易于使用的 GUI 文本比对工具,可以运行在 Linux ,Windows 及 MacOS 系统上。它同样提供一个左右分开的界面,用于查看对比的两个文件。
但是,它也有一些其它文本对比工具没有的功能,比如差异书签,以及一个便于快速定位导航差异点的导航图。
📥 官方下载地址:tkdiff download | SourceForge.net
💡 在线文本比较工具
十四. jq22
一款在线的文本比较工具,不想安装软件的直接用这个就好了!
地址:http://www.jq22.com/textDifference
💡 其他 | 已停止更新的对比工具
除了以上列举的一些常用、且还在更新维护的比较工具之外,还有很多已经停止更新的经典的比较工具。
十五. DiffMerge
DiffMerge是一个跨平台的 GUI 文本比对工具,具有 Linux ,Windows ,macOS 三大平台版本。我们知道,BeyondCompare 是一款收费软件,所以如果你们公司的版权要求比较高的话,不妨考虑一下免费的DiffMerge工具。
DiffMerge是国外的一款经典的、轻量级的、支持文件/文件夹比较、合并工具,支持3个文件同时进行对比。
DiffMerge 具有两大功能:
1. 图示化显示两个文件之间的改变。包含内部行高亮和完整的编辑支持。
2. 图示化显示三个文件之间的改变。允许自动合并(当可以安全操作时)和对结果文件完全编辑控制。
它具有以下特性:
- 支持文件夹比对;
- 集成文件浏览器;
- 高度可配置。
它支持Windows、 OS X和Linux三大操作系统,该工具最后更新时间是在2013年10月,版本为V4.2.0。
缺点:不能比较元数据;用户界面不够友好
根据自己系统类型选择对应版本:
📥 官方下载地址:SourceGear | DiffMerge
十六. AptDiff
这款工具也是一款较老且经典的工具,目前官方已经没有维护更新了,只能在第三方平台下载(要小心,不然下载了不正规的软件)。
AptDiff是一个文件比较工具,可以对文本和二进制文件进行比较和合并,适用于软件开发、网络设计和其它的专业领域。
它使用方便,支持键盘快捷键,可以同步进行横向和纵向卷动,支持Unicode格式和大于4GB的文件,可以生成HTML格式的比较报告。
十七. TextDiff
这是一款在08年就停止更新的经典比较工具,支持现在流行比较工具的常规比较功能,关键是它免费。
这个工具比较轻量级,exe文件只有840k,且不用安装,下载解压直接打开可以使用:
📥 下载地址:http://www.angusj.com/delphi/diff.zip