DiffSnap · 比较

看清两个版本之间到底改了什么。

比较两段文本或同一文件的两个版本,看清究竟改了什么:对齐的双栏、每一行内被改写的词单独高亮,以及可直接应用的统一格式补丁。

100% 本地运行,不上传任何内容每一行内部都做词级高亮导出统一格式 .patch 与 HTML 报告
试试这些例子
原始版 (A)0
修改版 (B)0
比较粒度
不按这里就不会开始比较,载入文件本身从不触发它。

尚未进行比较

左右各放一个版本,然后按“比较”。一切都在这个标签页里完成,不会上传任何内容。

工作方式

1

把两个版本放进来

粘贴、拖入两个文件,或者让另一个工具把其中一个递过来。什么都不会上传,此时也还没有开始比较。

2

决定什么才算改动

按行、按词还是按字符;要不要忽略缩进、大小写或空行。定好之后再按“比较”,费力的那一步只在你开口时才跑。

3

读结果

对齐的双栏里,被改写的词单独浮现,未动过的段落折叠收起,一个按键跳到下一处改动。

4

带走结果

一份 git apply 认得的统一格式补丁、一份可独立打开的 HTML 报告,或者把修订后的文本直接送进另一个工具。

Myers 算法,线性内存

经典的 O(ND) 算法配上分治改良。无论两个文件差得多远,内存占用都保持平稳:5000 行的比较约 7 毫秒,而朴素的 LCS 矩阵要花 590 毫秒和 200 MB。

词级高亮

被改写的行会再比一遍,逐词对照,于是亮起来的是真正挪动过的那三个字符,而不是一整块红对着一整块绿。

缩进可以不算数

把文件重新缩进一遍,逐字比较会判定每一行都不同。忽略行尾空格、所有空白、大小写或空行,剩下的才是真正的改动。

未动过的段落会折叠

一个 4000 行文件里改了一处,不该逼你翻完 4000 行。保留 1 行、3 行或 8 行上下文,任何折叠段落点一下就展开。

对应关系可以自己钉住

当两段移动过的内容配错了对,在左右各点一个行号就能把它们钉在一起。此后图钉两侧各自独立求解,一处修正绝不会打乱其余部分。

语法配色不会被盖掉

二十二种语法,只在文件确实需要时才加载。字符串里被改动的词既保留字符串的颜色,又加上改动的底色,而不是其中一个把另一个抹掉。

真正能打上的补丁

标准的统一格式差分输出,块头信息完全正确,git apply 和 patch 都认。也可以导出一份自成一体的 HTML 报告,没有字体、脚本或任何需要托管的资源。

大文件依然顺手

大规模比较会移到 Web Worker,编辑器保持响应;只有屏幕上的行才会真正生成;撤销记录保存的是改动过的字符,而不是整份文档的副本。

文本对比

看清两个版本之间到底改了什么。

真正需要做差分的东西,往往正是不能外传的:带着凭据的配置、尚未签署的合同、医疗数据导出、竞争对手的报价。DiffSnap 在这个标签页里完成计算,因此两份文档都留在你打开它们的那台机器上。

Myers 算法,跑在你自己的机器上

这里的比较采用 Myers 的 O(ND) 差分算法及其线性内存改良版,用原生 JavaScript 写成,运行在你自己的设备上。没有上传环节,没有后端,也没有任何携带你文本的请求:页面加载完之后断网,一切照常可用。

为人们真正会去比较的那类文件而做的对比工具。

大家拿它做什么

在上线前核对同事改动了配置里的哪一处;找出合同两版草稿之间挪了位置的条款;证明译文和它所依据的原文一一对应;在没有装 git 的机器上审阅补丁;以及弄清两份导出里哪一份才是最新的。

为什么本地处理在这里格外重要

值得拿来做差分的文档很少是公开的:写着密钥的环境文件、保密协议下的约定、含有客户资料的导出。把这些粘进托管的比较服务,等于把两个版本原封不动交给别人的服务器。在这里它们从不离开标签页,也就没有什么可记录、可缓存、可泄露的。

常见问题

Q它能比较多大的文件?+

最大可打开 32 MB 的文件;超过 512 KB 的会先等你点一下,而不是不打招呼就灌进编辑器。超过大约 12 万字符后,比较会转到 Web Worker,页面继续保持响应。两个几乎毫无共同之处的文件会触及工作量上限,被判定为整段重写——工具会在界面上说明,而不是假装无事发生。

Q我的文件会被发到服务器吗?+

不会。这里既没有上传也没有后端:比较、着色和所有导出都在你的浏览器标签页里运行。页面加载完成后即使断网也能继续使用。

Q我只是重新缩进了一下,为什么显示全都改了?+

因为默认每个字符都算数,包括空格和制表符。把空白选项切到“忽略所有空白”,剩下的就只有真正的改动了。大小写和空行也有对应的选项。

Q它会做语法高亮吗?+

会——二十二种语法,根据文件扩展名或文本的形态判断,并且只在某次比较确实需要时才加载。语法配色和改动词高亮是一起绘制的,谁也不会遮住谁。

Q结果可以导出吗?+

可以。块头信息正确、git apply 和 patch 都认的统一格式 .patch;不依赖任何外部资源、可独立打开的 HTML 报告;供提交信息或工单使用的纯文本摘要;以及单独的修订后文本。

Q两个版本对齐错了,我能纠正吗?+

可以。在一侧点击某个行号,再点另一侧应当与之对应的那一行,这一对就被钉住了。每个图钉之前和之后的内容都各自独立比较,因此一处纠正绝不会带偏文件的其余部分。

关键词

文本对比比较两个文件在线 diff代码对比查找差异并排对比统一格式差分生成补丁按词对比JSON 对比文档对比审查改动文件比对版本核对
oLoveTools 工具集的一员
oLoveTools

面向文本、代码、配置与草稿的免费私密比较,全程在浏览器内完成。

© 2026 oLoveTools关于

DiffSnap | 免费在线文本与代码对比工具

把两段文本或一个文件的两个版本并排比较。词级高亮、语法配色、空白处理选项、上下文折叠,以及统一格式 .patch 导出,全部在浏览器里完成,不上传任何内容。

常见问题

它能比较多大的文件?

最大可打开 32 MB 的文件;超过 512 KB 的会先等你点一下,而不是不打招呼就灌进编辑器。超过大约 12 万字符后,比较会转到 Web Worker,页面继续保持响应。两个几乎毫无共同之处的文件会触及工作量上限,被判定为整段重写——工具会在界面上说明,而不是假装无事发生。

我的文件会被发到服务器吗?

不会。这里既没有上传也没有后端:比较、着色和所有导出都在你的浏览器标签页里运行。页面加载完成后即使断网也能继续使用。

我只是重新缩进了一下,为什么显示全都改了?

因为默认每个字符都算数,包括空格和制表符。把空白选项切到“忽略所有空白”,剩下的就只有真正的改动了。大小写和空行也有对应的选项。

它会做语法高亮吗?

会——二十二种语法,根据文件扩展名或文本的形态判断,并且只在某次比较确实需要时才加载。语法配色和改动词高亮是一起绘制的,谁也不会遮住谁。

结果可以导出吗?

可以。块头信息正确、git apply 和 patch 都认的统一格式 .patch;不依赖任何外部资源、可独立打开的 HTML 报告;供提交信息或工单使用的纯文本摘要;以及单独的修订后文本。

两个版本对齐错了,我能纠正吗?

可以。在一侧点击某个行号,再点另一侧应当与之对应的那一行,这一对就被钉住了。每个图钉之前和之后的内容都各自独立比较,因此一处纠正绝不会带偏文件的其余部分。

关键词

文本对比, 比较两个文件, 在线 diff, 代码对比, 查找差异, 并排对比, 统一格式差分, 生成补丁, 按词对比, JSON 对比, 文档对比, 审查改动, 文件比对, 版本核对