返回博客
Reference 2026-04-18

Diff算法解释: Myers, Patience, Histogram

git、IDE和审查工具如何计算您每天看到的差异。

每个代码审查和合并都依赖diff算法。

Myers Diff

git、vim等默认。O((N+M)D)时间找最短编辑脚本。

Patience Diff

git diff --diff-algorithm=patience

锚定在两个文件中各出现一次的唯一行。函数移动看起来更整洁。

Histogram Diff

patience的改进。

git config --global diff.algorithm histogram

单词/字符diff

git diff --word-diff

结构化数据

  • jd (JSON)
  • difft (AST 基础)