改了配置文件,但忘了改了哪几行?同事发来一段"更新过的"代码,你需要知道改了什么?手动逐行比对,费时费力还容易出错。这时候,一个 Diff 工具能在几秒钟内帮你搞定。

这篇文章带你了解 Diff 是什么、什么时候用、怎么读懂红绿高亮,以及在线工具和命令行方式各有什么优劣。

Diff 是什么?

"Diff"来自 difference(差异)。在文本和代码的语境下,diff 就是两个版本之间的变化记录——哪些行被删除了、哪些行是新增的、哪些行没有变动。

这个概念来自 Unix 系统里的 diff 命令,已经存在了几十年。如今,Git 的变更追踪、GitHub 的 Pull Request 视图、各种代码审查工具,背后都是 diff 的逻辑。

什么时候需要用 Diff 工具?

比你想象的场景多得多:

代码审查(Code Review) 只想看改了哪里,不想重读整个文件?Diff 过滤掉没变的内容,只展示关键的变动。

配置文件对比 线上环境出问题了,需要比对生产环境和测试环境的 nginx.confdocker-compose.yml?粘贴进去,一秒出结果。

文档版本对比 写作或翻译时,对比两个草稿版本;团队协作时,快速看出别人改了哪些措辞——不需要版本控制系统也能做到。

排查意外修改 某个文件被脚本或构建流程悄悄改动了,对比一下就能知道动了哪里。

API 响应对比 两个版本的接口返回了不同的 JSON?粘进 Diff 工具,字段变化一览无余。

怎么读懂红绿高亮?

大多数 Diff 工具用颜色来区分变化,规则很直觉:

  • 🟥 红色(删除) — 这些行在原始版本里有,在新版本里被删掉了
  • 🟩 绿色(新增) — 这些行是在新版本里加入的
  • 灰白(未变) — 没有改动的行,显示为背景色,提供上下文

更好的工具还会做行内高亮——如果某行只改了一个词,只会高亮那个词,不是整行飘红。这对比较配置文件和文档特别有用,能精确定位到字符级别的变化。

在线工具 vs 命令行 diff

Linux/macOS 自带的 diff 命令很强大,但输出格式不直观:

< 旧的这行
---
> 新的这行

两者对比:

特性在线 Diff 工具命令行 diff
可视化✅ 彩色并排显示❌ 纯文本符号
是否需要安装❌ 浏览器即用✅ 需要终端环境
行内高亮✅ 支持词/字符级⚠️ 需要额外参数
适合分享✅ 可以截图或链接分享❌ 仅限本地
适合场景快速对比、与他人协作脚本自动化、批量处理

如果只是临时对比两段文本,或者要把结果给不懂命令行的同事看,在线工具明显更方便。

使用技巧

先统一格式再对比。如果两个文件一个用 Tab 缩进、一个用空格,diff 会显示几乎每一行都变了。建议先格式化,或者开启"忽略空白字符"选项。

保持左旧右新的习惯。约定俗成:左边放原始版本,右边放修改后的版本。绿色 = 新版本新增的,红色 = 原版本有但被删掉的。方向搞反了容易看混。

利用上下文行理解改动位置。Diff 工具会在变化行的上下显示几行未改动的内容作为参照,帮助你判断这个改动发生在文件的哪个部分、改的是什么逻辑。

代码用并排视图,长文用单列视图。并排(side-by-side)方便同时阅读新旧两个版本,适合散文和文档;单列(unified)更紧凑,开发者看代码时常用。

一个典型的使用流程

  1. 打开在线 Diff 工具
  2. 左侧粘贴原始文本
  3. 右侧粘贴修改后的文本
  4. 点击"比较"(或实时自动刷新)
  5. 扫一眼红绿高亮,找出所有变动
  6. 结合上下文行,理解每处改动的含义

整个过程不需要登录、不需要安装,30秒以内搞定。


下次遇到需要对比两段文本的场景,不要再用眼睛盯着逐行找了。

立即使用 ujiffy Diff 工具 →

粘贴两段文本,差异立刻高亮显示——免费,无需注册。