同僚が作成した .diff ファイルがあり、その diff ファイルにリストされている変更を、まったく同じリポジトリのローカル ブランチに適用したいと考えています。この差分ファイルの生成に使用されたワーカーの PC またはブランチにアクセスできません。
明らかに、1 行ずつ行ってすべてを再入力することもできますが、システムを人的エラーにさらしたくはありません。これを行う最も簡単な方法は何ですか?
差分ファイルをリポジトリのルートにコピーしてから、次を実行します。
git apply yourcoworkers.diff
apply
コマンドの詳細については、man ページを参照してください。
ところで、コミット全体をファイルごとに交換するより良い方法はgit format-patch
、送信側とgit am
受信側でコマンドを組み合わせることです。これは、作成者情報とコミット メッセージも転送されるためです。
パッチ適用が失敗し、差分が生成されたコミットが実際にリポジトリにある場合は、変更をマージしようとする-3
オプションを使用できます。apply
また、次のように Unix パイプでも動作します。
git diff d892531 815a3b5 | git apply