LoginSignup
8
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

8
1
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
8
1