完全にマージされた 2 つのブランチがあります。
ただし、マージが完了した後、1 つのファイルがマージによって台無しにされていることに気付き (他の誰かが自動フォーマットを実行しました)、他のブランチで新しいバージョンに変更する方が簡単です。次に、ブランチに持ち込んだ後、1行の変更を再挿入します。
では、Git でこれを行う最も簡単な方法は何でしょうか?
完全にマージされた 2 つのブランチがあります。
ただし、マージが完了した後、1 つのファイルがマージによって台無しにされていることに気付き (他の誰かが自動フォーマットを実行しました)、他のブランチで新しいバージョンに変更する方が簡単です。次に、ブランチに持ち込んだ後、1行の変更を再挿入します。
では、Git でこれを行う最も簡単な方法は何でしょうか?
ファイルを最終的に配置するブランチからこれを実行します。
git checkout otherbranch myfile.txt
一般式:
git checkout <commit_hash> <relative_path_to_file_or_dir>
git checkout <remote_name>/<branch_name> <file_or_dir>
いくつかのメモ (コメントから):
myfile.txt
ファイルを上書きし、mydir
別の方法:
git show commit_id:path/to/file > path/to/file
同様の検索でこの質問にたどり着きました。私の場合、別のブランチから、ファイルの元の場所とは異なる現在の作業ディレクトリにファイルを抽出しようとしていました。答え:
git show TREEISH:path/to/file > path/to/local/file
チェックアウトコマンドを使用します。
git diff --stat "$branch"
git checkout --merge "$branch" "$file"
git diff --stat "$branch"
madlep's answerに従って、ディレクトリ blob を使用して別のブランチから 1 つのディレクトリをコピーすることもできます。
git checkout other-branch app/**
そこにあるファイルを1つだけ変更した場合のOPの質問に関しては、これでうまくいきます。