Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое rebase в Git
Rebase (переплетение) — это операция в Git, которая переносит серию коммитов с одной ветки на другую, переписывая их историю. Это один из главных инструментов для поддержания чистой и линейной истории проекта.
Как работает rebase
Опция rebase перемещает ваши коммиты на вершину целевой ветки, тогда как merge создаёт коммит слияния.
# Исходная ситуация:
# main: A -- B -- C
# \
# feature: D -- E
# После git rebase main на ветке feature:
# main: A -- B -- C
# feature: D' -- E'
Синтаксис
git rebase main
git rebase main feature
git rebase -i HEAD~3
Interactive rebase
Мощнейший инструмент для переписания истории:
git rebase -i HEAD~3
Доступные команды:
- pick — оставить коммит
- reword — изменить сообщение
- edit — остановиться для изменения
- squash — объединить с предыдущим
- fixup — объединить, отбросив сообщение
- drop — удалить коммит
Rebase vs Merge
MERGE — создаёт коммит слияния с ветвящейся историей. REBASE — переписывает историю, оставляя её линейной.
Мerge история:
A -- B -- C -- M
\\
D - E
Rebase история:
A -- B -- C -- D' -- E'
Когда использовать
✅ Используй rebase:
- Для локальных веток перед push
- Чтобы получить свежие изменения из main
- Для очистки истории перед merge request
- Interactive rebase перед code review
❌ НЕ используй rebase:
- На публичных ветках, которые используют другие
- Если вы не уверены в результате
- Если история уже поделена с командой
Золотое правило
Никогда не переписывай историю публичных ветвей (main, release). Это может привести к конфликтам и путанице в команде.
Восстановление после неудачного rebase
git reflog
git reset --hard <original-commit>
Rebase — мощный инструмент для чистой истории, но требует аккуратности с общими ветками.