Git Rebase - это команда, изменяющая последовательность коммитов в ветке. Она "переносит" коммиты из одной ветки в другую, применяя их поверх последних коммитов целевой ветки. Это позволяет поддерживать более линейную и чистую историю коммитов, избегая слияний.
Основные цели использования Git Rebase:
git rebase -i) позволяет изменять, объединять, переупорядочивать или удалять коммиты.Принцип работы:
При выполнении git rebase <целевая_ветка> <текущая_ветка>:
<текущая_ветка> и <целевая_ветка>.<текущая_ветка>, которые были созданы после общей точки.<текущая_ветка> на конец <целевая_ветка>.<текущая_ветка> поверх последних коммитов <целевая_ветка>.Пример базового использования:
Предположим, у нас есть ветки main и feature.
plaintext
Выполняем git checkout feature и затем git rebase main:
plaintext
Коммиты D и E переприменяются поверх C, создавая новые коммиты D' и E'.
Интерактивный режим git rebase -i:
Позволяет управлять процессом rebase. Открывается редактор с перечнем коммитов для rebase и доступными командами:
pick: использовать коммит (по умолчанию).reword: использовать коммит и изменить его сообщение.edit: использовать коммит и остановиться для внесения изменений.squash: объединить коммит с предыдущим.fixup: объединить коммит с предыдущим, игнорируя его сообщение.drop: удалить коммит.Важное правило: Не используйте git rebase для веток, которые уже были опубликованы (переданы в общий репозиторий) и с которыми работают другие разработчики. Rebase изменяет историю коммитов, что может создать проблемы при синхронизации с другими копиями репозитория. Для опубликованных веток предпочтительнее использовать git merge.