应该将.diff文件转换为.patch文件,怎么做?
不,扩展名并不重要。内容是。
你可以试试,如果不行,回退on this comment by Евгений Чорба (Evgeny Solis):
对于那些没有补丁命令并且 git apply 什么都不做的人。解决办法是:
修改补丁文件吧!
来自
diff --git a/uc_attribute/uc_attribute.admin.inc b/uc_attribute/uc_attribute.admin.inc
index b9a978a..ef33ca3 100644
--- a/uc_attribute/uc_attribute.admin.inc
+++ b/uc_attribute/uc_attribute.admin.inc
收件人:
diff --git ubercart/uc_attribute/uc_attribute.admin.inc ubercart/uc_attribute/uc_attribute.admin.inc
index 1c35bf8..587fa67 100755
--- ubercart/uc_attribute/uc_attribute.admin.inc
+++ ubercart/uc_attribute/uc_attribute.admin.inc
使用从项目根目录应用补丁
git apply -p0 PATCHFILE.patch
详细:
您应该将补丁文件中的“a/”和“b/”替换为“<projectname>/”(在我的示例中为“ubercart”)
应用补丁后,您可能会看到类似警告
warning: ubercart/uc_attribute/uc_attribute.admin.inc has type 100755, expected 100644
没关系,别担心。
注意!如果补丁包含多个文件的差异,您应该替换所有出现的“a/<anypath>”和“b/<anypath>”
注意:OP chengpei 在使用git apply 时具有seen the other error message:
got a error: fatal: corrupt patch at line 7
记录在““fatal: corrupt patch at line XX” when staging single line”中
在文件末尾有换行符会修复它,删除它们会导致它。
Magnus Bäck推荐in the comments:
不要编辑补丁文件以删除目录前缀a/ 和b/,而是运行patch -p1 以自动删除第一个目录组件。
tremby 添加in the comments:
要从 git 生成不带 a/ 和 b/ 前缀的差异,您可以使用 --no-prefix 作为 git diff 的选项