web-dev-qa-db-ja.com

どのようにしてgit diffファイルを取得し、それを同じリポジトリのコピーであるローカルブランチに適用しますか?

同僚によって作成された.diffファイルがあり、そのdiffファイルにリストされている変更を、まったく同じリポジトリーの私のローカルブランチに適用したいと思います。この差分ファイルを生成するために使用された、そのワーカーのPCまたはブランチへのアクセス権がありません。

明らかに私は一行ずつ行ってすべてを再入力することができたが、私はむしろシステムを人的ミスにさらすことはしたくない。これを行う最も簡単な方法は何ですか?

383
Mike_K

差分ファイルをリポジトリのルートにコピーしてから、次の手順を実行します。

git apply yourcoworkers.diff

applyコマンドに関する詳細は のmanページ にあります。

ところで:コミットをファイルごとに交換するより良い方法は、送信者のgit format-patchコマンドと受信者のgit amコマンドの組み合わせです。

パッチアプリケーションが失敗し、差分の生成元のコミットが実際にリポジトリにある場合は、変更をマージしようとするapply-3オプションを使用できます。

以下のようにUnixのpipeでも動作します。

git diff d892531 815a3b5 | git apply
577
Philipp