guides/
diff 指南
整理了文本对比的工作原理、结果的阅读方法,以及各选项的适用场景。
01 · guide/how-diff-works
diff 是如何找出差异的 — LCS 与 Myers 算法
围绕最长公共子序列(LCS)、编辑脚本、Myers O(ND) 算法以及按行与按词比较,通俗讲解 diff 找出两段文本差异的原理。
02 · guide/diff-algorithmsMyers、Patience、Histogram — diff 算法比较
结合示例比较 git diff 的 --diff-algorithm 选项(myers、minimal、patience、histogram)各自如何工作,以及结果为何不同。
03 · guide/read-unified-diffunified diff(patch)阅读指南 — 写给代码审查
通过示例逐一解读 git diff 和 patch 文件中的 --- +++ 文件头、@@ hunk 头中的数字、上下文行、No newline at end of file 标记以及 diff --git 扩展头。
04 · guide/whitespace-options忽略空白选项的区别 — diff -b、-w、-B、-Z 与 git 的对应选项
结合 GNU diff、git 选项和示例,比较忽略行尾空白、忽略空白数量(-b)、忽略所有空白(-w)、忽略空行(-B)、忽略大小写之间的确切区别。
05 · guide/compare-documents文档校对与合同对比 — 不遗漏地找出两个版本之间的差异
以纯文本方式对比初稿与修改稿、发出与返回的合同的步骤和技巧,包括按字符比较、整理 PDF 换行,以及合同核对清单。
06 · guide/json-diff如何对比 JSON — 键排序与规范化
介绍对比两段 JSON 时,如何消除因键顺序、缩进、数字写法不同而产生的假差异,并说明数组顺序、大整数以及与 JSON Patch 的区别。
07 · guide/line-endings换行符(CRLF、LF)与看不见的差异 — 所有行都显示为已修改时
整理了肉眼看来相同、diff 却显示每一行都不同的原因——CRLF 与 LF 换行、文件末尾换行符、BOM、制表符与空格、特殊空白、Unicode 规范化——及其解决方法。