Git应用不';不创建新文件吗?

Git应用不';不创建新文件吗?,git,diff,Git,Diff,我试图通过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

我试图通过
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没有创建新文件?

您正在反向创建修补程序-该修补程序正在尝试删除该文件。我想你想要:

git diff origin/master master > patch1.diff
您可能会发现
git格式补丁
很有帮助。如果您当前已签出
master
,您可以执行以下操作:

git format-patch origin/master

该命令将生成一组补丁文件,在分支和
origin/master
之间,每个提交一个补丁文件。然后,您可以使用
git-am
应用它们,并保留所有额外的数据,如提交消息和作者信息。

您不想使用
git-format-patch
有什么原因吗?是的,这是一个共同的兴趣)如果您使用
--stdout
选项,会更加方便
git格式补丁——标准源代码/master | pbcopy
将补丁放在我的剪贴板(OS X)上,
pbpaste | git am
将其应用于当前回购。