当您调用git diff
时,它使用diff
实用程序来比较文件,但不是默认方式。它使用了许多额外的选项,我可以命名为:
但我不确定这些是唯一的变化。 git
传递给diff
以实现默认输出的其他命令和参数是什么?如果我想比较a.txt
和b.txt
,并按照git的方式制作diff文件,我应该使用什么命令行?
答案 0 :(得分:3)
Git不使用默认的* nix或GNU diff,而是实现自己的diff算法。
此代码主要位于Git source tree中的文件builtin/diff.c
,builtin/diff-tree.c
,builtin/diff-index.c
和builtin/diff-files.c
。
因此可以做一些像高级word-diff这样的花哨的东西,并且可以为所有平台提供可靠的实现。
它可以生成的默认(基于行)统一差异格式补丁与该格式的大多数其他元素兼容。 IIRC,GNU diff(或者它是补丁?)还为Git放入diff中的一些额外内容增加了一些容忍度,以便在应用git生成的补丁时更具弹性。