まずは複数のcommitをまとめてcherry-pickする方法
git cherry-pick 123456..abcdef
とすれば可能。
ただし、起点の方は 取り込みたいcommitの一つ前の番号 にすることに注意。
cherry-pick中にコンフリクトが起きたとき
「最初の2つはうまいことcherry-pickされたのに、3つめでコンフリクトしちゃって止まっちゃったわ...」というときにすることの手順。
手順
- コンフリクトを resolve する。(PhpStormを使ってるならツールバーのresolve conflictを使うと便利)
- コンフリクトを解決しても、そのままcherry-pickをすると
ShononoMBP:hoge shono$ git cherry-pick 123456..abcdef
error: a cherry-pick or revert is already in progress
hint: try "git cherry-pick (--continue | --quit | --abort)"
fatal: cherry-pick failed
とでる。
どうやら「cherry-pickやってる途中なんですけど、どうします?」と聞いているようなので、 git cherry-pick --continue
を叩いて「cherry-pick続けます」と意思表示をする。
3. 以降のコミットでコンフリクトが起こらなければ完了。コンフリクトがおきれば再度 1.2. を繰り返す。
わけがわからなくなったとき
git cherry-pick --quit
をすればcherry-pickは一旦とまる。
ただし、コンフリクトするまでに取り込まれたcherry-pickは元に戻らないので、戻したい場合は git reset --soft abcdef
等で戻してください。