git cherry-pick の使い方

コミットを 1 つ取り込む

書き方

git cherry-pick コミット...
git cherry-pick A..B
git cherry-pick --continue / --abort

別のブランチの特定のコミットだけを、今のブランチにコピーします。A..B は A の次から B までをまとめて(A は入らない。A^..B なら A から)。

よく使うオプション

オプション意味
-xメッセージに「元のコミット」の行を足す
-nコミットせずに、変更だけを取り込む
--continueコンフリクトを直したあと続ける
--abortやめて前の状態に戻す

例

$ git cherry-pick 5b7d3a1[main 8a9b0c1] ログインの不具合を直す
 1 file changed, 3 insertions(+), 1 deletion(-)

別のブランチの 1 つのコミットだけを、今のブランチにコピーします。

$ git cherry-pick -x 5b7d3a1

コピーしたコミットのメッセージに、元のコミットの番号を書き足します。どこから持ってきたかが分かります。

$ git cherry-pick 1a2b3c4^..4d5e6f7

1a2b3c4 から 4d5e6f7 までの続いたコミットを、まとめてコピーします。

$ git cherry-pick -n 5b7d3a1 9a8b7c6

2 つのコミットの変更をコミットせずに取り込みます。中身を確かめてから、自分で 1 つのコミットにまとめます。

よくある間違い・注意

  • コピーしたコミットは、元とは別の番号の新しいコミットです。あとで元のブランチをマージすると、同じ変更が 2 回出てくることがあります。
  • A..B の形は A を含みません。A も入れたいときは A^..B と書きます。

実際に打って練習する

Git コースの Lv23「一粒だけ拾う cherry-pick」で覚えます(第3章 時の書庫(書き換えと復旧))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜10 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

Git コマンド一覧(使い方と例)へ戻る