LoginSignup
28
15

More than 5 years have passed since last update.

複数のcommitをまとめてcherry-pickして、コンフリクトが生じたときの手順

Posted at

まずは複数のcommitをまとめてcherry-pickする方法

git cherry-pick 123456..abcdef

とすれば可能。
ただし、起点の方は 取り込みたいcommitの一つ前の番号 にすることに注意。

cherry-pick中にコンフリクトが起きたとき

「最初の2つはうまいことcherry-pickされたのに、3つめでコンフリクトしちゃって止まっちゃったわ...」というときにすることの手順。

手順

  1. コンフリクトを resolve する。(PhpStormを使ってるならツールバーのresolve conflictを使うと便利)
  2. コンフリクトを解決しても、そのまま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 等で戻してください。

28
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
15