rebase и cherry-pick?

Объясните пожалуйста разницу между ними. Одни и те же задачи из своего повседневного рациона можно сделать как с помощью одной, так и с помощью другой. Нигде не могу найти ответ, в чём же разница между ними…

git rebase master - ты синхронизируешься с главной веткой в которую коммитят все разработчики проекта, это полезно когда кто-то изменил участок кода с которым ты сейчас работаешь в своей ветке, дабы через неделю ты смог без проблем смержиться с master веткой. Обычно делается каждое утро перед началом рабочего дня и в конце когда фича готова.

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

Простыми словами на примере 2х веток:

git rebase devel - собачка на молнии - "сшивает" коммиты по дате их создания (ветка devel "растворяется" в основной ветке)

git chery-pick idea - забрать коммиты из ветки idea