Git apply不会创建新文件?

时间:2013-03-07 22:49:27

标签: git diff

我正在尝试按diffapply创建补丁。我的补丁有新文件,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没有创建新文件?

1 个答案:

答案 0 :(得分:9)

您正在向后创建补丁 - 该补丁正在尝试删除该文件。我想你想要:

git diff origin/master master > patch1.diff

您可能会发现git format-patch有帮助。如果您目前已签出master,则可以执行以下操作:

git format-patch origin/master

该命令将产生一堆补丁文件,每个补丁文件对应于您的分支和origin/master之间的不同。然后,您可以使用git am应用那些并保留所有额外数据,如提交消息和作者信息。