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 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。