我正在尝试按diff
和apply
创建补丁。我的补丁有新文件,apply
后我收到错误。
git diff master origin/master > patch1.diff
git apply patch1.diff -v
Checking patch test3...
error: test3: No such file or directory
修补程序:
diff --git a/test3 b/test3
deleted file mode 100644
index df6b0d2..0000000
--- a/test3
+++ /dev/null
@@ -1 +0,0 @@
-test3
我做错了什么或git apply
没有创建新文件?
答案 0 :(得分:9)
您正在向后创建补丁 - 该补丁正在尝试删除该文件。我想你想要:
git diff origin/master master > patch1.diff
您可能会发现git format-patch
有帮助。如果您目前已签出master
,则可以执行以下操作:
git format-patch origin/master
该命令将产生一堆补丁文件,每个补丁文件对应于您的分支和origin/master
之间的不同。然后,您可以使用git am
应用那些并保留所有额外数据,如提交消息和作者信息。