13

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

4

1 回答 1

10

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

git diff origin/master master > patch1.diff

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

git format-patch origin/master

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

于 2013-03-07T22:55:11.610 回答