git chery-pick - ты забираешь коммиты из одной ветки в другую, это бывает полезно, когда изменения, сделанные другим разработчиком в его ветке, прямо сейчас нужны тебе в твоей ветке.

См. иллюстрации.

git merge devel - пожарная лестница, все коммиты ветки devel крепятся в конец, образуется пересечение (devel остается отдельной веткой, к которой можно вернуться)
https://bitbucket.org/landwatersun/forum/downloads/201711222029.jpg

git chery-pick idea - забрать выбранный коммит из ветки idea
https://bitbucket.org/landwatersun/forum/downloads/201711222030.jpg

Как работает reabase можно посмотреть тут.