マージコミットのcherry pick
こういうマージコミットをcherry pickする時の話
普通にgit cherry-pick
してみます
$ git cherry-pick -n 1adf377
怒られます。マージコミットは親が2ついるので、どちらから辿ればいいのか分からない、ということみたいです。
error: commit 1adf3776d12499e29a896d11a4d03846e7fc3c54 is a merge but no -m option was given. fatal: cherry-pick failed
-m
に見て欲しい親のハッシュ(90a3900
)を指定しましたが、
$ git cherry-pick -n -m 90a3900 1adf377
やっぱり怒られました。
error: option `mainline' expects a number greater than zero usage: git cherry-pick [<options>] <commit-ish>... or: git cherry-pick <subcommand> ...
調べたところ、親番号を教えないといけないみたいなので、git rev-parse
で確認します。
$ git rev-parse 1adf377^1 90a3900fa17137dc88d0a4641e386e36763666f5 $ git rev-parse 1adf377^2 6d0fda8197e66cf3c6defa7ec616e61f12b37c13
今回は親番号が1
の方を見てほしかったので、m
オプションで指定します。
$ git cherry-pick -n -m 1 1adf377
これでうまくいきました。
参考
親番号の調べ方の情報元 stackoverflow.com