Git で過去の別ブランチの特定のコミットの中の特定のファイルの変更を現在のワークツリーにマージする
結構レアなケースだと思うのですが、今日そういうシーンに遭遇したのでメモとして残しておきます。
今日発生したケースは、
という状況で、じゃあ現在の develop ブランチから改めてトピックブランチを切って、そこに B ファイルの修正だけマージしよう、となったわけです。Aファイルの修正は特に必要がなくなったので。
これを解決するには、まずは develop から新たにトピックブランチを切ってチェックアウトします。
そして、以下のコマンドで解決です。
git checkout <コミットZのハッシュ> -- <Bファイルのファイルパス>
相変わらず Git はよくできてるなぁと思った瞬間でした。