2013-03-07 28 views
5

私はdiffapplyでパッチを作成しようとしています。私のパッチに新しいファイルがあり、applyの後にエラーが発生しています。Git applyは新しいファイルを作成しませんか?

git diff master origin/master > patch1.diff 
git apply patch1.diff -v 

Checking patch test3... 
error: test3: No such file or directory 

パッチ:私は新しいファイルを作成しません間違っているか、git apply

diff --git a/test3 b/test3 
deleted file mode 100644 
index df6b0d2..0000000 
--- a/test3 
+++ /dev/null 
@@ -1 +0,0 @@ 
-test3 

をやっていますか?

+1

'git format-patch'を使用したくない理由はありますか? –

+0

はい、共通の関心事) –

答えて

8

パッチを後方に作成しています - そのパッチはに削除しようとしていますそのファイル。あなたが望んだと思う:

git diff origin/master master > patch1.diff 

git format-patchが役に立ちます。あなたが現在masterがチェックアウトされている場合は、あなただけ行うことができます:

パッチファイルの束を得られますコマンド
git format-patch origin/master 

、それぞれに1つは、あなたのブランチとorigin/masterの間で異なるコミット。その後、git amを使用してそれらを適用し、コミットメッセージと著者情報のような余分なデータをすべて保持することができます。

+1

'--stdout'オプションを使うとさらに便利です。 'git format-patch --stdout origin/master | pbcopy'はパッチをクリップボード(OS X)に貼り付け、 'pbpaste | git am'はそれを現在のレポに適用します。 –

+0

@Kevin - 私はそれが好きです! –

+0

@CarlNorum愚かな私、ありがとう。 –

関連する問題