改了一段代码不确定哪里不同?配置文件更新后想看看改了什么?两份文案改了几个字要确认?这些都是"逐行文本对比"的经典场景。
Git 有 diff,但不是每个人都用 Git,而且 Git diff 在终端里的输出不太直观。在线 diff 工具很多,但大部分界面杂乱、广告一堆、还要注册。Diff Tool 做一件事:干净地对比两段文本,逐行标出差异。
三种差异一目了然
对比结果用颜色区分三种情况:
相同的行自动折叠收起,只显示差异部分和上下文。点击折叠条可以展开查看完整内容。这种设计让你能快速聚焦于"到底改了什么",而不是在几百行相同的代码中翻找。
Diff 算法:它是怎么工作的
Diff Tool 底层使用的是 Myers diff 算法的变体——这也是 Git diff 使用的核心算法。它的工作原理是找到两段文本之间的"最长公共子序列"(LCS),然后把不在公共子序列中的部分标记为"新增"或"删除"。
对于修改行(一行中只有部分内容变化),工具会进一步做字符级别的对比——精确高亮到具体改了哪几个字。比如 listen 80; 变成 listen 443 ssl;,会精确标出 80 被改成了 443 ssl,而不是把整行都标红标绿。
实操:对比两个版本的配置文件
服务器的 nginx.conf 改了一版,你想确认到底改了哪些配置项,有没有误改其他地方。
◆ 文本对比 标签页COMPARE 对比▼ 工具界面:文本对比 — Nginx 配置对比结果
| # | 旧版 (A) | # | 新版 (B) |
|---|---|---|---|
| ⊟ 第1~8行 相同 | |||
| 9 | listen 80; | 9 | listen 443 ssl; |
| ⊟ 第10~14行 相同 | |||
| 15 | ssl_certificate /etc/ssl/cert.pem; | ||
适用场景详解
| 场景 | 左边粘贴 | 右边粘贴 | 关注点 |
|---|---|---|---|
| 合同修改审查 | 原版合同文本 | 修改后的合同文本 | 条款措辞是否被悄悄改了 |
| 代码 Code Review | master 分支代码 | PR 中的新代码 | 逻辑变更、新增函数、删除代码 |
| 配置文件变更 | 线上配置 | 本地修改后的配置 | 确认只改了目标项,没有误改 |
| 翻译校对 | 初译稿 | 终审稿 | 修改了哪些表述 |
| 文案确认 | 甲方原文 | 乙方修改稿 | 哪些地方被改动了 |
| SQL 语句对比 | 旧版查询 | 优化后的查询 | WHERE条件、JOIN方式的变化 |
| API 响应对比 | 预期响应 JSON | 实际响应 JSON | 哪些字段值不一致 |
对比技巧
先排版再对比
如果两段文本的缩进风格不一样(比如一个用 Tab,一个用空格),diff 会把每一行都标为"不同"。建议对比前先统一格式。对于 JSON,可以先用 JSON 格式化工具 把两段 JSON 都格式化一遍,再粘贴对比。
忽略空白差异
有些差异只是行尾多了个空格或换行符不同(Windows 的 CRLF vs Linux 的 LF)。如果你只关心实际内容的变化,可以在对比前手动去掉尾部空格。大部分内容差异不涉及空白问题,但配置文件和 YAML 文件要特别注意缩进。
大文件对比
Diff Tool 基于浏览器运行,对于几千行的文本对比完全没问题。如果文本超过 1 万行,处理时间可能需要几秒。超过 10 万行建议使用桌面工具(如 Beyond Compare、WinMerge)。
表格数据也能对比
如果你要对比的是表格数据(两个 Excel 报价单、两个 CSV 文件),切到 ◆ 表格对比 标签页。支持直接从 Excel 复制粘贴,逐格标出差异单元格。详见 《两个Word文档怎么快速找出改了哪里?》。
跟其他对比方案的区别
| 方案 | 优点 | 缺点 |
|---|---|---|
| Git diff | 集成在版本管理中 | 需要 Git 环境,终端输出不直观 |
| VS Code diff | 语法高亮,集成编辑 | 需要安装 VS Code,非开发者不熟悉 |
| Beyond Compare | 功能最强大 | 收费软件,需要安装 |
| 在线 diff 网站 | 无需安装 | 广告多,部分要注册,文件可能上传 |
| Diff Tool | 无需安装、无广告、本地处理 | 不支持目录对比 |
常见问题
中文对比支持吗?
完全支持。Diff Tool 基于 Unicode 处理文本,中文、日文、韩文、emoji 都没问题。字符级高亮对中文同样有效——能精确标出一句话中改了哪几个字。
对比结果能导出吗?
目前对比结果展示在页面上,可以截图保存。如果需要分享对比结果,建议截图或复制关键差异行。