Gitコマンド:cherry-pickの使い方と実例 | Lapis Tech IT用語辞典
Gitで別ブランチの「特定のコミットだけ」を現在のブランチに取り込む魔法のコマンド、cherry-pickの安全な使い方とコンフリクト解消法を解説。
git cherry-pick とは?
git cherry-pick は、他のブランチで行われた「特定のコミット(変更)」だけを拾い上げて、現在の自分のブランチにコピーして取り込むコマンドです。
「チェリーピック(つまみ食い、いいとこ取り)」という名前の通り、ブランチ全体をマージ(git merge)するのではなく、特定のバグ修正や機能追加だけをつまみ出したい時に非常に便利です。
基本的な使い方
チェリーピックを行うには、取り込みたいコミットの「ハッシュ値」(英数字の文字列)が必要です。
1. コミットハッシュの確認
まず、別のブランチの履歴を見て、取り込みたいコミットのハッシュ(例: a1b2c3d)を見つけます。
git log feature-branch
2. 現在のブランチに取り込む
自分が取り込みたいブランチ(例: main や hotfix)に移動していることを確認し、コマンドを実行します。
# 現在のブランチに a1b2c3d の変更を取り込む
git cherry-pick a1b2c3d
これで、別ブランチの特定の変更だけが現在のブランチにコミットとして追加されます。
複数のコミットをまとめて取り込む
連続した複数のコミットを取り込みたい場合は、範囲指定ができます。
# Aの"次のコミット"から、Bのコミットまでを全て取り込む
git cherry-pick A..B
# Aを含む、AからBまでの全てのコミットを取り込む
git cherry-pick A^..B
注意点:コンフリクトの発生
チェリーピックでも、マージと同様に**コンフリクト(競合)**が発生することがあります。同じファイルの同じ箇所が編集されていた場合です。
- コンフリクトが起きたら、対象ファイルを開いて手動で修正・保存します。
- 修正後、ファイルをステージングに乗せます。
git add <修正したファイル> - コンフリクト解消をGitに伝え、チェリーピックを継続します。
git cherry-pick --continue
※もしコンフリクトが複雑すぎて「チェリーピック自体をやめたい!」と思ったら、以下のコマンドで元通りキャンセルできます。
git cherry-pick --abort
まとめ
git cherry-pick は「リリース直前に見つかった別ブランチのバグ修正だけを緊急で取り込みたい」といった現場のトラブルシュートで大活躍するコマンドです。強力ゆえに履歴が少し複雑になるため、チーム開発での共有ルールに従って使いましょう。