Edited at

merge commitをcherry-pickする

More than 5 years have passed since last update.


背景

forkして開発したX-Yなcommitを本流にmergeしてもらった時

      X-Y

/ \
...-A-B-C-D-...

こんな感じになる。

ここのX-Yの一連のcommitをcherry-pickしたい時、

git cherry-pick X Y

すればいい話ではあるけれど、forkした後の開発が長かったりするとめんどくさいし、merge自体をごそっとcherry-pick出来ないものか。


出来ます

git cherry-pick -m 1 D

これでおk


ちなみに

git cherry-pick -m 2 D

すると、forkして開発していた間に進んだ本流のcommit分をcherry-pick出来る。

つまり、

git cherry-pick B C

と同等の変更が出来る。


参考

revertも同じみたい