git diff用于diff命令的参数是什么?

时间:2013-04-18 10:26:02

标签: git command-line diff git-diff

当您调用git diff时,它使用diff实用程序来比较文件,但不是默认方式。它使用了许多额外的选项,我可以命名为:

  • 行前的不同标记:+/-而不是> /<。
  • 在实际不同的行之前和之后的几行背景。

但我不确定这些是唯一的变化。 git传递给diff以实现默认输出的其他命令和参数是什么?如果我想比较a.txtb.txt,并按照git的方式制作diff文件,我应该使用什么命令行?

1 个答案:

答案 0 :(得分:3)

Git不使用默认的* nix或GNU diff,而是实现自己的diff算法。

此代码主要位于Git source tree中的文件builtin/diff.cbuiltin/diff-tree.cbuiltin/diff-index.cbuiltin/diff-files.c

因此可以做一些像高级word-diff这样的花哨的东西,并且可以为所有平台提供可靠的实现。

它可以生成的默认(基于行)统一差异格式补丁与该格式的大多数其他元素兼容。 IIRC,GNU diff(或者它是补丁?)还为Git放入diff中的一些额外内容增加了一些容忍度,以便在应用git生成的补丁时更具弹性。