命令行递归的基于字的差异?

时间:2011-02-13 00:53:34

标签: word-diff

是否有一个命令行程序,它提供递归的基于字的diff(在2个目录上)?

diff -u是递归的,但它没有逐字逐句比较。 wdiffdwdiff执行基于字词的差异,但没有内置的递归差异选项。

我想将结果传递给colordiff,因此生成colordiff理解的输出的程序将特别有用。有什么建议?谢谢!

CC

1 个答案:

答案 0 :(得分:24)

Git可以做到并输出颜色:

以下经常有用:

git diff --color-words path1 path2

但一般情况下你可能需要做

git diff --no-index --color-words path1 path2

这两个文件都不需要在git存储库中!

如果您和路径位于git工作树中,则需要

--no-index。如果您或其中一个文件位于git工作树之外,则可以省略它。

手册页:https://git-scm.com/docs/git-diff/1.8.5(以及稍后......)

  

git diff --no-index [--options] [ - ] [...]

     

此表单用于比较文件系统上给定的两个路径。您可以   在工作树中运行命令时省略--no-index选项   由Git控制,至少有一条路径指向外面   工作树,或在工作树外运行命令时   由Git控制。