Все красиво объяснил
Nkly777, только в блоке PS merge с rebase перепутаны.
Добавлю картинок.
git
rebase devel - собачка на молнии - "сшивает" коммиты по дате их создания
(ветка devel "растворяется" в основной ветке)
![518b8dbce1cd4f96b30de9782ae38fcd.png](https://habrastorage.org/files/518/b8d/bce/518b8dbce1cd4f96b30de9782ae38fcd.png)
git
merge devel - пожарная лестница, все коммиты ветки devel крепятся в конец, образуется пересечение
(devel остается отдельной веткой, к которой можно вернуться)
![1ba8186d879d46ff85ea7c1e192328e2.png](https://habrastorage.org/files/1ba/818/6d8/1ba8186d879d46ff85ea7c1e192328e2.png)
git
chery-pick idea - забрать коммиты из ветки idea