チェリーピックとは
チェリーピック(cherry-pick)は、特定の一つのコミットを別のブランチから選んで、現在のブランチにそのコミットのみをコピーする機能です。
- イメージ
特徴
- 元のコミット: 元のブランチにそのまま残る
- 新しいコミット: コピー先のブランチに新しいコミットハッシュで作成される
- 変更内容: 同じだが、コミット ID は異なる
主な使用場面と具体例
特定の機能の部分的な取り込みをしたい時
例えば大きめのPRで、先にUIの改善だけしたとします。
で、そのPRはまだマージ出来ないけどその改善だけリリースブランチやmainブランチに取り込んでおきたい。
といった場合などにcherry-pick
の出番です。
# UIの改善コミットのみをチェリーピック
git checkout release/v2.1
git cherry-pick 3a7f9e2 # UIの改善コミット
使用方法
簡単です。
コミットのハッシュがわかれば OK です。
コミットタブ開いて該当のコミット履歴の右にコピーアイコンあるのでこちらをクリックしてください。
これをコピーしてターミナルで、
git cherry-pick <コミットハッシュ>
を実行すれば OK です。
コマンドラインでの操作
# 基本的なチェリーピック
git cherry-pick <コミットハッシュ>
# 例:特定のコミットをチェリーピック
git cherry-pick abc123def
# 範囲指定でのチェリーピック
git cherry-pick {始点となるコミットの1つ前のコミットハッシュ}..{終点となるコミットハッシュ}
重要:コピーなのか移動なのか?
チェリーピックはコピーです。
移動ではありません。
個人的には移動のオプションあっても良いじゃんと思いました。
主な使用用途はブランチ間違えて push した時など使えるかなと思いました。
終わり。