补丁和差异文件之间的区别

时间:2010-11-18 14:21:24

标签: linux svn git

有人可以解释一下 .diff 文件和 .patch 文件之间的区别。

4 个答案:

答案 0 :(得分:19)

重要的是文件的内容,而不是扩展名。这两个扩展意味着某种差异效用(diffgit diffgit format-patchsvn diff)产生了输出。

许多diff实用程序产生的输出可以由patch命令应用。您经常需要使用-d-p选项patch才能使路径匹配正确(条带前缀,名称目标目录)。如果您在网上分发的文件中看到其中一个扩展名,那几乎可以肯定它与patch兼容。

Git的差异输出与补丁兼容,但我相信svn不是。当然,git diff生成的普通补丁最好由git apply应用,git format-patch生成的补丁设计用于git-am

答案 1 :(得分:6)

补丁是一个统一的差异(-u),如果你这样做: diff -u oldfile newfile, 使用patch命令行,您可以将差异应用于oldfile以在其他位置成为newfile。

答案 2 :(得分:5)

没有区别。 diff实用程序生成一个使用patch应用的补丁文件。

答案 3 :(得分:0)

对我来说,.diff 文件仅包含由“git diff”生成的文件差异(添加/删除的行)

我的

.patch 文件还包含由 git show 生成的作者、日期和补丁/提交消息。


Github 允许将 .patch.diff 添加到拉取请求 URL。 .diff 仅包含文件更改,而 .patch 是该 PR 中所有提交的序列化,每个提交信息和文件内容差异。