Что такое git rebase?
Слияние, rebase и конфликты
`git rebase` переносит коммиты текущей ветки поверх другой ветки, создавая их заново.
Пример
git switch feature
git rebase mainБыло: feature ответвилась от старого main. Стало: коммиты feature идут после последнего коммита main, история линейная.
Интерактивный rebase
git rebase -i HEAD~3Позволяет склеить (squash), переименовать (reword), переставить или удалить коммиты перед pull request.
Конфликты
Rebase применяет коммиты по одному — конфликт может возникнуть на каждом. Исправляем, git add, git rebase --continue; отменить всё — git rebase --abort.
Главное правило
Не ребейзить коммиты, которые уже есть у других: у них хеши изменятся, и истории разойдутся. После rebase своей запушенной ветки нужен git push --force-with-lease.
Коротко для собеседования
rebase переписывает коммиты поверх другой ветки ради линейной истории; публичные ветки не ребейзят.
Подробнее: Pro Git — Перебазирование