文本差异工具
逐行比较两段文本。新增行以绿色高亮,删除行以红色高亮。适用于配置文件、日志和代码比较。
完全免费
无需注册
浏览器内完成
5 种语言
深色模式
如有问题或显示异常,请通过以下方式联系我们: 联系表单反馈给我们。
📖 常见的坑
比较两段文本,按行与按词高亮差异。全部处理在浏览器内完成,粘贴的内容不会被发送到任何地方。请注意「看不到差异」与「完全相同」并不是一回事:外观完全一致的两段文本,可能在换行符或不可见字符上不同;反过来,满屏的差异也可能只代表一处实质修改。
| 情形 | 会发生什么 | 怎么处理 |
|---|---|---|
| 所有行都显示为差异 | 几乎可以肯定是换行符不同。Windows 使用 CRLF,macOS 与 Linux 使用 LF,二者都不可见。同样的内容在另一台机器上重新保存一次,就足以让所有行被标记为已更改。Git 差异突然暴增时,请首先怀疑这一点。 |
请先用换行符转换把两侧统一为 LF 再比较。长期方案是在仓库根目录放置 .gitattributes 并写入 * text=auto eol=lf。编辑器「保存时删除行尾空白」的设置也会产生同类差异,团队统一后会省心很多。 |
| 看起来一样却不匹配 | 其中混入了不可见字符。常见的有零宽空格(U+200B)、不换行空格(U+00A0)、全角空格(U+3000)、BOM(U+FEFF)。它们通常在从网页、PDF 或 Word 复制时混入,在字体上只是一个普通空格,或者根本不显示。全角与半角字母数字混用也会出现同样的症状。 | 切换到按词显示差异,问题位置会自行凸显。若已知混入来源,可用半角全角转换统一字母数字与空格;怀疑 BOM 时用乱码诊断确认编码。若复制来源是网页,先粘贴到纯文本编辑器再取用,是最省事的规避办法。 |
| 只是格式化,差异却看不懂 | 重新缩进、调整键顺序、运行格式化工具,语义上毫无变化,却会重写每一行。在这种状态下评审,真正的改动会被淹没在噪声里,很容易漏看。对 JSON 或 YAML 而言,仅仅调整键的顺序,就足以让按行比较的差异全军覆没。 | 请把格式化与实质修改拆成不同的提交。能够在评审时说「这个提交只是格式化」,就是全部的收益。若只是想比较结构化数据,请用 JSON 差分而非按行比较——它会无视键顺序,只报告新增、删除与值变更。也可以在比较前先用 JSON 格式化把两侧统一为相同书写格式。 |
差异工具展示的是「字符串如何不同」,而非「语义发生了什么变化」。批量重命名变量的提交会让整个文件一片红绿,行为却分毫未变;反过来,把比较运算符从 < 改成 <= 这一个字符的差异,可能改变整个系统的行为。差异的体量与风险的大小之间没有任何相关性。唯一可靠的规律是:行数越多的差异越容易被草草掠过。
📖 使用方法
-
1
左右两侧粘贴文本左侧粘贴旧版本,右侧粘贴新版本。
-
2
查看差异新增为绿色,删除为红色。
-
3
以 unified 格式复制点击"复制"以 Git 风格导出 unified diff。
❓ 常见问题
支持单词级差异吗?
目前仅支持行级别。
可以忽略空白吗?
启用"忽略空白"选项。
数据会发送吗?
不会。所有比较都在浏览器中进行。
有结构化 diff 吗?
先用 JSON 格式化工具排序 key,再比较。
🐛 此工具出现问题了吗?
免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。
✅
感谢您的反馈!
已送达运营者,将用于改进工具。