DiffMerge 工具记录
Posted GoldenaArcher
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DiffMerge 工具记录相关的知识,希望对你有一定的参考价值。
DiffMerge
主要还是用来对比学习用的 code 和自己写的 code。这个操作也挺简单的,就是下载,然后选中文件夹即可。
目前虽然要求注册(需要 19 美金好像),不过还是可以免费使用。
这款工具配置之后也能用在 Git 上,对本地/checked in,或是本地/remote的文件进行对比,这部分配置还没折腾过,原因后面说明。
下载地址如下:https://www.sourcegear.com/diffmerge/downloads.html。
DiffMerge三平台都有支持,除了 M1……大概因为 DiffMerge 版本更新并不是很勤快来着。
本地选择文件夹即可:
然后放对比的文件夹地址:
这里会列举两个文件夹下的文件:
点开文件后就能看到不同的地方:
同时也有保存的功能:
总体来说比较适合教学用……对比人家写好的代码以及自己的代码然后研究为啥出错,毕竟如果只是单纯的对比 branch 上的区别,VSCode 的可视化就做的挺好的了,Intellij 更是可以列举所有的操作记录(Community Version 就可以)。
这款工具相对而言出来的年限也挺早了,我找到的最早记录都有二零零几年的事情了,最新的 4.2 也是 13 年的 release,对比其他 IDE 按月更新来说,确实频率很低了。真的要找好用的 Git 工具,电脑支持的情况下可以看看 Intellij 来着。
除此之外一点简单的配置:
如果是对比 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
以上是关于DiffMerge 工具记录的主要内容,如果未能解决你的问题,请参考以下文章
Git在Windows环境下配置Diff以及Merge工具---DiffMerge
如何使用 msysgit / gitk 设置 DiffMerge?