LoginSignup
1

More than 3 years have passed since last update.

Gitに error: commit ハッシュ is a merge but no -m option was given. と怒られて知った マージをチェリーピックする方法

Last updated at Posted at 2017-09-08

事象 : チェリーピックしたら起こられた

こんな状態の時に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

ガーン:sob:助けて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

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
What you can do with signing up
1