git rebase

Перенести коммиты ветки на новую основу или переписать последние коммиты

Что делает

git rebase main берёт коммиты текущей ветки и заново применяет их поверх свежего main — как будто работа началась только что. История получается прямой, без коммитов слияния. Если коммит конфликтует с новой основой, git остановится: поправьте файлы, добавьте их через git add и продолжите git rebase --continue или отмените всё через git rebase --abort.

С флагом -i rebase становится интерактивным: git откроет редактор со списком коммитов, где каждый можно оставить (pick), переименовать (reword), склеить с предыдущим (squash) или удалить (drop). Так приводят историю в порядок перед pull request.

Осторожно. rebase создаёт новые коммиты вместо старых. Не перебазируйте коммиты, которые уже есть в общей ветке: у коллег история разойдётся с вашей. Свою ветку после rebase придётся отправить через git push --force-with-lease.

Синтаксис

git rebase <ветка>
git rebase -i <коммит>
git rebase --continue
git rebase --abort

Примеры

Связанные команды

Потренировать · Все команды