Saber 酱的抱枕

Fly me to the moon

01/15
2019
软件

代码比较与合并工具 DiffMerge

代码比较与合并工具 DiffMerge

今天我需要把两个 js 文件进行代码合并,以及处理冲突。因为某些原因,Git 不能处理(不在一个仓库而且文件名不同)。VS Code 虽然有 diff 工具,却只能比较不能合并。所以我需要找个其他软件,这就是 DiffMerge。

DiffMerge 官网下载地址

DiffMerge 是一个跨平台的文件对比与合并工具。它的合并是 3 路合并,因为 2 路的话,版本控制工具会选择其中一个,不会产生冲突。当代码达到 3 路的时候才会引起冲突。

我这是特殊情况,把两个仓库里的两个相似文件当作冲突来处理。

使用方法如下:

从菜单栏打开合并工具(merge),必须选择 3 个文件才能进行合并:

代码比较与合并工具 DiffMerge

中间那个选择目标文件(要把代码合并到它里面),另外两个选择冲突文件。

合并界面如下:

代码比较与合并工具 DiffMerge
(箭头是我加的,操作示意)

在 3 栏对比界面,DiffMerge 只允许把左右两边的合并到中间,所以我们的目标文件要放在中间。

用快捷键操作很方便:

Alt + ↑ :上一个冲突点
Alt + ↓ :下一个冲突点
Alt + ← :把右边代码的冲突合并到中间
Alt + → :把左边代码的冲突合并到中间

解决过的冲突会加粗显示,我觉得如果用颜色表示的话会容易辨别。

在这个界面也支持手动编辑文件。

ps:DiffMerge 打开未设置编码的文件时,会警告编码错误,之后让我们手动选择编码。


DiffMerge 也可以比较文件夹,只能选择两个文件夹进行比较。

代码比较与合并工具 DiffMerge

可以选择保留哪个文件,也可以先解决冲突再决定。双击文件就会进入两栏的文件对比界面,这时候只能从左侧向右侧合并,不能右侧向左侧,没搞懂是为什么。

所以如果想在比对文件夹时顺便解决冲突,需要在选择文件夹时把目标文件夹放在第二个选择框。

用这个还得提前计算好方向啊……

代码比较与合并工具 DiffMerge