DiffMerge 工具记录

这篇博客介绍了DiffMerge这款代码对比工具的使用方法,包括如何下载、配置及在Git中集成。作者提到,虽然DiffMerge适用于教学,对比代码错误,但相比VSCode和Intellij等现代IDE的内置功能,它的更新频率较低。文章还详细阐述了如何将DiffMerge配置为Git的merge tool,并提供了Mac系统的安装和配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DiffMerge

主要还是用来对比学习用的 code 和自己写的 code。这个操作也挺简单的,就是下载,然后选中文件夹即可。

目前虽然要求注册(需要 19 美金好像),不过还是可以免费使用。

这款工具配置之后也能用在 Git 上,对本地/checked in,或是本地/remote的文件进行对比,这部分配置还没折腾过,原因后面说明。

下载地址如下:https://www.sourcegear.com/diffmerge/downloads.html

download site

DiffMerge三平台都有支持,除了 M1……大概因为 DiffMerge 版本更新并不是很勤快来着。

本地选择文件夹即可:

select folder

然后放对比的文件夹地址:

folder sources

这里会列举两个文件夹下的文件:

show files

点开文件后就能看到不同的地方:

diff files

同时也有保存的功能:

edit

总体来说比较适合教学用……对比人家写好的代码以及自己的代码然后研究为啥出错,毕竟如果只是单纯的对比 branch 上的区别,VSCode 的可视化就做的挺好的了,Intellij 更是可以列举所有的操作记录(Community Version 就可以)。

这款工具相对而言出来的年限也挺早了,我找到的最早记录都有二零零几年的事情了,最新的 4.2 也是 13 年的 release,对比其他 IDE 按月更新来说,确实频率很低了。真的要找好用的 Git 工具,电脑支持的情况下可以看看 Intellij 来着。

除此之外一点简单的配置:

config

如果是对比 Java 文件的话,可以在设置里面加上 *.class,毕竟这部分的文件是编译后的文件,就对比代码而言,没什么大用。

如果是 JS 项目的话,也可以使用 folder filters 去过滤 dist 下的文件,原因同上。

官方文档说是可以 match pattern,需要用 双括号 括起来,分隔符使用空格、逗号、分号都可以。

配置 Git Mergetool

我本来以为 DiffMerge 可以显示不同分支的 diff 的,没想到最后只是解决 merge conflict 的 GUI,稍微有一点失望……不过总算是补了一下,把配置做完了:

在这里插入图片描述

在这里插入图片描述

GUI 显示是这样的,不过说实话吧,现在很多 IDE 都自带可视化工具了,所以这个配置应该算……可选项……?

官网其实说的已经比较清楚了,以 mac 为例,目前的下载都是 DMG 而非 PKG,所以需要把 DMG 中的 Extras 这个文件夹抠出来:

在这里插入图片描述

随后执行官网上提供的脚本:

sudo cp Extras/diffmerge.sh /usr/local/bin/diffmerge
sudo chmod 755 /usr/local/bin/diffmerge
# 这个就算是 sudo 我还是遇到了权限问题,不知道是不是因为公司电脑的原因
sudo cp Extras/diffmerge.1 /usr/share/man/man1/diffmerge.1
sudo chmod 644 /usr/share/man/man1/diffmerge.1

随后运行下面的命令:

$ git config --global diff.tool diffmerge
$ git config --global difftool.diffmerge.cmd "/usr/local/bin/diffmerge \"\$LOCAL\" \"\$REMOTE\""
$ git config --global merge.tool diffmerge
$ git config --global mergetool.diffmerge.trustExitCode true
$ git config --global mergetool.diffmerge.cmd  "/usr/local/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""

这样,在合并分支的时候,如果命令行提示出现有 merge conflict,就可以使用 git mergetool 去打开有冲突的文件去进行合并:
在这里插入图片描述

Reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值