事象 : チェリーピックしたら起こられた
こんな状態の時にbranchCでbranchBの内容が必要になりました。
状態
branchA----●---●---●---●-----☆--●--●--------
↑Merge(hashZ)
branchB(削除済)--●--●---●--●--┘
branchC--●-----●----●-----●----●---●---●-----
なので、cherry-pickしたらエラーになりました。
間違い
$ git cherry-pick {hashZ}
error: commit {hashZ} is a merge but no -m option was given.
fatal: cherry-pick failed
ガーン助けてGoogle先生!
理由 : Mergeを普通のCommitと同じようにチェリーピックしたから
Usually you cannot cherry-pick a merge because you do not know which side of the merge should be considered the mainline.
Git - git-cherry-pick Documentation
Merge はちょっと工夫しないと cherry-pick できないことを初めて知りました。
Merge とはいえただのCommitだと思っていた・・・反省。
対応 : Merge用のオプションをつけてチェリーピックする
正解
$ git cherry-pick -m 1 {MergeのCommitのハッシュ}
やり方はこちらのサイト様に教えて頂きました。
merge commitをcherry-pickする - Qiita