Git Ready
特定のコミットだけ取り込む - git cherry-pick の使い方・オプション・サンプル

特定のコミットだけ取り込む- git cherry-pick

特定のコミットを現在のブランチに適用(チェリーピック)します。

概念図

git cherry-pick diagram

構文

bash
git cherry-pick <commit>

使用例

特定のコミットを適用

bash
git cherry-pick abc1234

注意点

  • 多くの場合 merge で代替できる

    cherry-pick はコミットハッシュが変わる操作です。ブランチ運用を見直せば merge だけで済むことがほとんどです。詳しくは きれいな履歴にこだわりすぎない を参照してください。

  • 元コミットとはハッシュが別になる

    cherry-pick は元のコミットとは別の新しいコミットを作成するため、同じ変更内容でもコミットハッシュは異なります。そのため、後でブランチをマージする際にコンフリクトが発生する可能性があります。

  • 頻繁に cherry-pick するならブランチ戦略を見直す

    頻繁に cherry-pick を使う必要がある場合は、ブランチ戦略の見直しを検討しましょう。通常はリリースブランチや hotfix ブランチを設計し直した方が管理が楽になります。

  • -x オプションで出所を記録

    -x オプションを付けると、コミットメッセージに「(cherry picked from commit abc1234)」という行が追加され、どこから cherry-pick したかを後から追跡しやすくなります。チーム開発では付けておくのがおすすめです。

  • コンフリクト時の対処

    コンフリクトが発生したら git status で対象ファイルを確認し、手動で修正して git add してから git cherry-pick --continue で続行します。諦める場合は git cherry-pick --abort で元に戻せます。

  • 実務での使いどころ

    hotfix の別ブランチへの反映や複数リリースブランチへの配布など、cherry-pick が活きる実践的なシナリオは、ガイド cherry-pick と rebase を実務で使いこなす を参照してください。

関連コマンド