git patch和diff文件的区别

r1zhe5dt  于 2023-04-19  发布在  Git
关注(0)|答案(4)|浏览(218)

有人能解释一下**.diff文件和.patch**文件之间的区别吗?

ykejflvf

ykejflvf1#

重要的是文件的内容,而不是扩展名。这两个扩展名都意味着某种diff实用程序(diffgit diffgit format-patchsvn diff)产生了输出。
许多diff工具产生的输出可以通过patch命令应用。您经常需要使用-d-p选项到patch,以获得正确匹配的路径(剥离前缀,名称目标目录)。如果您在在线分发的文件上看到这些扩展名之一,则几乎可以肯定它与patch兼容。
Git的diff输出与patch兼容,但我认为svn的不兼容.当然,git diff生成的普通补丁最好用git apply,而git format-patch生成的补丁则是为git-am设计的.

lp0sw83n

lp0sw83n2#

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

nr7wwzry

nr7wwzry3#

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

3pvhb19x

3pvhb19x4#

对我来说,.diff文件只包含由“git diff”产生的文件差异(添加/删除的行)。
对我来说,.patch文件还包含作者、日期和补丁/提交消息,由git show生成。
Github允许添加.patch.diff到拉取请求URL。.diff只包含文件更改,而.patch是该PR中所有提交的序列化,每个提交的提交消息和文件内容都不同。

相关问题