Sobes.tech
Junior — Middle
78

Объясните принцип работы команды rebase в системе контроля версий Git и в чем её отличие от merge.

Ответ от нейросети

sobes.tech AI

Команда git rebase используется для переноса или «переписывания» серии коммитов на новую базу, то есть на другой коммит. Она позволяет взять изменения из одной ветки и «переиграть» их поверх другой ветки, создавая линейную историю без дополнительных merge-коммитов.

Отличия от git merge:

  • git merge объединяет две ветки, создавая новый коммит слияния, который сохраняет историю обеих веток с ветвлениями.
  • git rebase переносит коммиты одной ветки на вершину другой, переписывая историю и делая её линейной.

Пример:

Если у вас есть ветка feature, ответвлённая от master, и master обновился, то:

  • git merge master в feature создаст merge-коммит, объединяющий изменения.
  • git rebase master в feature переместит ваши коммиты поверх актуального master, как будто вы начинали работу с последнего состояния master.

Rebase удобен для поддержания чистой истории, но требует осторожности при работе с публичными ветками, чтобы не переписывать общую историю.