情弱エンジニアのなかのblog

一人前のエンジニアになる為のブログです

cherry-pickの使い方について

この間gitでブランチAにブランチBのコミットを反映したいと思ったときに便利なコマンドがあったので使い方など記載いたします。

例えばBというブランチを編集して、いざリモートリポジトリにpushしようとしたときに 実はブランチAを編集しなくてはいけなかったということに気づいたとき、、、編集内容が多く今からブランチAを変えるのはめんどくさいが コミット自体は一回だけでどうにか編集内容をブランチAに反映させたいときや

ブランチBを編集していて本番へのリリースにあたり、リリース用のブランチAに変更をコミットしようとしたところ、 過去の改修が含まれていたことに気付き、ブランチBの特定のコミットだけ反映したいときなど

これらの状況で「cherry-pick」を使えば一発で解決できます。

・使い方

//ブランチBにチェックアウトする
git checkout ブランチB
git log

commit f77d749550d38df8b2a11cc3d5c16cd1f26fc025
    パラメーターの編集

commit 7c83ae675baf01ec71799c4cba7d06eb467a6bdd
    メソッドの追加

commit 0794374042d3def3b5824bdb0be2b215d443b73b
    コメントの編集

「commit f77d749550d38df8b2a11cc3d5c16cd1f26fc025  パラメーターの編集」 だけブランチAに反映したいとき

//ブランチAにチェックアウトする
git checkout ブランチA
//ブランチBの「パラメーターの編集」commitをブランチAに反映する
git cherry-pick 546de2cc727fcae02646c6af637f401e4238feef

ブランチAに「commit f77d749550d38df8b2a11cc3d5c16cd1f26fc025  パラメーターの編集」が反映されます。