サイトアイコン プログラマー(PG)・システムエンジニア(SE)になるための入門講座

Cherry-pick(チェリーピック)とは?Git初心者向けに特定のコミットだけ取り込む方法をわかりやすく解説

Cherry-pick(チェリーピック)とは?Git初心者向けに特定のコミットだけ取り込む方法をわかりやすく解説

Cherry-pick(チェリーピック)とは、別のブランチにある特定のコミットだけを選んで現在のブランチへ取り込むGitの操作です。

通常のMergeではブランチ全体の変更を取り込みますが、Cherry-pickを利用すると必要なコミットだけを反映できます。

「Mergeとの違いは?」「どんな場面で使うの?」という初心者向けに、Cherry-pickの仕組みや使い方をわかりやすく解説します。

Cherry-pickとは?

Cherry-pick(チェリーピック)は、日本語では「良いものだけを選び取る」という意味があります。

Gitでは、別のブランチにある特定のコミットだけを選択し、現在のブランチへ適用する操作を指します。

例えば、10件のコミットがあるブランチから、不具合修正のコミットだけを取り込みたい場合に利用します。

項目 内容
正式名称 Cherry-pick
日本語の意味 必要なものだけ選び取る
目的 特定のコミットだけを取り込む
利用場面 不具合修正、緊急対応、リリース作業

Cherry-pickはなぜ必要なのか

開発中のブランチには、複数の機能追加や修正が含まれていることがあります。

しかし、本番環境へ反映したいのはその中の1件の不具合修正だけというケースも少なくありません。

そのような場合にCherry-pickを利用すると、必要なコミットだけを安全に取り込めます。

Cherry-pickの流れ

  1. 取り込みたいコミットIDを確認する
  2. 取り込み先のブランチへ切り替える
  3. Cherry-pickを実行する
  4. コンフリクトがあれば解消する
  5. コミット内容を確認する
  6. 必要に応じてPushする

Cherry-pickとMergeの違い

Cherry-pick Merge
特定のコミットだけ取り込む ブランチ全体を取り込む
必要な修正だけ反映できる すべての変更が反映される
部分的な適用に向いている ブランチ統合に向いている

初心者は、Mergeは「ブランチ単位」、Cherry-pickは「コミット単位」で変更を取り込むと覚えると理解しやすくなります。

IT現場での利用例

緊急の不具合修正

開発ブランチにある修正のうち、不具合修正だけを本番用ブランチへ取り込みます。

リリース直前の対応

リリース対象外の機能を含めず、必要な修正だけを反映できます。

保守ブランチへの反映

複数のバージョンを保守している場合、同じ修正を別バージョンへ適用する際に利用されます。

社内システム開発

テスト環境で確認済みの修正だけを本番リリース用ブランチへ反映するケースがあります。

GUIでCherry-pickする方法

SourceTreeやGitKrakenなどのGitクライアントでは、対象コミットを右クリックして「Cherry-pick」を選択するだけで実行できます。

  1. コミット履歴を表示する
  2. 対象コミットを選択する
  3. 「Cherry-pick」を実行する
  4. コンフリクトがあれば解消する

CUI(コマンド)でCherry-pickする方法

コミット履歴を確認する

git log –oneline

ブランチを切り替える

git checkout main

Cherry-pickを実行する

git cherry-pick コミットID

コンフリクト解消後に続行する

git cherry-pick –continue

Cherry-pickを中止する

git cherry-pick –abort

確認結果の見方

表示内容 意味
Successfully applied 正常に適用された
CONFLICT コンフリクトが発生
The previous cherry-pick is now empty 取り込む変更がなかった

業務でよくあるトラブル

トラブル 原因
コンフリクトが発生した 同じファイルを別ブランチでも修正している
コミットIDを間違えた 履歴の確認不足
変更が重複した 同じ修正を複数回取り込んだ
期待した動作にならない 関連するコミットを取り込んでいない

原因の切り分け

Cherry-pickで問題が発生した場合は、次の順番で確認しましょう。

  1. 現在のブランチを確認する
  2. コミットIDが正しいか確認する
  3. git logで履歴を確認する
  4. コンフリクトが発生していないか確認する
  5. 関連するコミットが必要か確認する

影響範囲を確認する

Cherry-pickは特定のコミットだけを取り込みますが、関連するコミットが不足すると、ビルドエラーや動作不良が発生する可能性があります。

初心者がやりがちなミス

業務で上司へ報告するポイント

例:「不具合修正のコミットのみCherry-pickでreleaseブランチへ反映しました。コンフリクトは発生しておらず、影響範囲はログイン機能のみです。」

エスカレーションするタイミング

実務で役立つポイント

Cherry-pickは緊急の不具合修正(Hotfix)でよく利用されます。

例えば、開発ブランチには未完成の機能が含まれていても、本番環境では不具合修正だけを早急に反映したいことがあります。そのような場面では、MergeではなくCherry-pickを使うことで、必要最小限の変更だけを適用できます。

ただし、依存するコミットがある場合は、一つのコミットだけでは正常に動作しないこともあります。実行前に変更内容や影響範囲を十分確認しましょう。

関連するIT用語

よくある質問(FAQ)

Cherry-pickとMergeは何が違いますか?

Cherry-pickは特定のコミットだけを取り込みます。Mergeはブランチ全体の変更を取り込みます。

Cherry-pickすると元のコミットは削除されますか?

いいえ。元のコミットはそのまま残ります。Cherry-pickでは、現在のブランチに同じ内容の新しいコミットが作成されます。

複数のコミットをCherry-pickできますか?

はい。コミットIDを複数指定したり、コミット範囲を指定したりすることで、複数のコミットをまとめて取り込めます。

初心者でもCherry-pickを使う機会はありますか?

日常的に使う機会は多くありませんが、不具合修正やリリース作業では利用されることがあります。まずはMergeやPullなどの基本操作を理解してから学ぶと理解しやすくなります。

まとめ

Cherry-pickは、別のブランチから必要なコミットだけを選んで取り込める便利なGitコマンドです。

初心者は、「Mergeはブランチ全体」「Cherry-pickはコミット単位」「Rebaseは履歴を整理する」という違いを理解しておくことが大切です。特に緊急の不具合修正やリリース作業では活用されることが多いため、実務でも役立つ知識として覚えておきましょう。

モバイルバージョンを終了