fun fact:diff和patch是unix极早期就有的工具了,早期(1980s)的hacker们(主要是美国大学生)就是这么共享bsd的源代码以及改进的:找到一个确定版本的bsd源代码,各个大学之间通过共享patch文件来共享自己对bsd unix的改进。
bsd很长一段时间的发展史就是各个大学互传patch的魔改史。至于svn甚至git都是很晚之后才有的了。
但是因为习惯,还有兼容的理由,这些工具基本上遵循最初的diff和patch格式,现在输入git show看到的输出其实就是patch格式,以及git发生合并冲突的时候的这个格式也是来自patch:
![](https://static-img.0xffff.one/RtR7CJJ8sNr6rKhn77EPjNMyN8P9w60-dEhWc8iqSig/q:90/w:800/rt:fit/aHR0cHM6Ly9zdGF0/aWMuMHhmZmZmLm9u/ZS9hc3NldHMvZmls/ZXMvMjAyMi0wMi0x/NC8xNjQ0ODY4OTUw/LTYyMjQ0OC1tbWV4/cG9ydDE2NDQ4Njg5/MDY1OTYuanBn)