代码之外,diff对比还能用在哪些地方
版本控制是最常见的应用场景,但差异对比同样适合用来追踪合同草稿之间的改动、监测抓取下来的网页内容随时间发生的变化,或者在定稿前比较文档的两个版本。
为什么一个很小的改动看起来会像一大片差异
因为按行对比只要一行里有一个字符不同,就会把整行都标记为"变更",所以在一段很长的文字里改掉一个错别字,看起来可能像是整行都被重写了。切换到按词或按字符的对比视图,通常能更清楚地看出实际改动其实很小。
常见问题
明明只改了一个词,为什么那一行会同时显示为删除和新增?
这正是按行对比的表示方式——除非工具还支持行内的逐词高亮,否则它不会显示"部分改动",而是把旧的那一行标记为删除、新的那一行标记为新增。
diff工具只能比较纯文本吗?
很多工具也支持比较代码、JSON等结构化格式,但对比的底层逻辑通常仍然是基于文本的;也有一些专门的工具能理解特定格式的结构(比如忽略JSON里键的顺序),而不只是逐字符比较。