Gitで別ブランチの変更を1ファイルだけ持ってくる

Git

gitで別ブランチの変更をコミット単位で持ってこれる、cherry-pickコマンドはありますが、その変更の全てがほしいわけではなく、一部ファイルの変更だけが欲しい場面がたまにあります。

そういうときに使えるコマンドがあったので、紹介します。

git checkout <欲しい変更があるブランチ> -- <欲しい変更があるファイルの相対パス>

たとえば、featureブランチにある特定ファイルの変更が欲しい場合は下記のようになります。

git checkout feature -- hoge/fuga/main.go

ディレクトリ単位で持ってくることもできます。

git checkout feature -- hoge

追記

restoreコマンドでも同じことができるようです。
むしろ、こちらのほうが推奨かも。

git restore -s feature hoge/fuga/main.go
git restore -s feature hoge