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