В чем разница между rebase и merge в Git?

Merge создает новое коммит слияния, объединяя история веток. Rebase перемещает коммиты вашей ветки поверх другой, переписывая историю.

Короткий ответ

Что ответить на собеседовании

Merge создает новое коммит слияния, объединяя история веток. Rebase перемещает коммиты вашей ветки поверх другой, переписывая историю.

Подробный разбор

Ответ с пояснениями

Merge создает новое коммит слияния, объединяя история веток. Rebase перемещает коммиты вашей ветки поверх другой, переписывая историю.

Когда использовать:

  • Merge: Предпочтительно для слияния фича-веток в главную ветку, сохраняет историю.
  • Rebase: Хорошо для очистки локальной истории перед пушем, делает историю линейной.

Сравнение:

Характеристика Merge Rebase
Тип операции Создает коммит слияния Переписывает историю, перемещая коммиты
История Сохраняет структуру веток, может быть сложной Линейная, но может быть трудно отслеживать
Коллектив Безопаснее при работе в команде Может вызвать проблемы при работе с общими ветками, если история уже опубликована
# Пример merge
git checkout main
git merge feature-branch
# Пример rebase
git checkout feature-branch
git rebase main
git checkout main
git merge feature-branch // Fast-forward merge

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее