当您调用git diff
时,它使用该diff
实用程序来比较文件,但是,不是以默认方式。它使用了许多额外的选项,我能说出的一些是:
- 行前的不同标记:+/- 而不是 >/<。
- 在实际不同的行之前和之后的几行上下文。
但我不确定这些是唯一的变化。其他是什么以及git
传递哪些命令行参数diff
以实现其默认输出?如果我想比较,比如说, a.txt
用b.txt
git 制作的方式制作差异文件,我应该使用什么命令行?
当您调用git diff
时,它使用该diff
实用程序来比较文件,但是,不是以默认方式。它使用了许多额外的选项,我能说出的一些是:
但我不确定这些是唯一的变化。其他是什么以及git
传递哪些命令行参数diff
以实现其默认输出?如果我想比较,比如说, a.txt
用b.txt
git 制作的方式制作差异文件,我应该使用什么命令行?
Git 不使用默认的 *nix 或 GNU diff,但实现了自己的 diff 算法。
其代码主要位于文件builtin/diff.c
、builtin/diff-tree.c
和Git 源代码树builtin/diff-index.c
中。builtin/diff-files.c
因此,它可以做一些花哨的事情,例如高级 word-diff,并为所有平台提供可靠的实现。
它可以生成的默认(基于行的)统一差异格式补丁与该格式的大多数其他实现兼容。IIRC、GNU diff(或者它是补丁?)还对 Git 放入 diff 中的一些额外内容增加了一些容忍度,以便在应用 git 生成的补丁时更具弹性。