В чем разница между git rebase и git merge

«В чем разница между git rebase и git merge» — вопрос из категории DevOps, который задают на 28% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

git rebase и git merge оба объединяют изменения, но делают это по-разному:

  • Merge создаёт новый коммит, который объединяет две ветки, сохраняя историю в виде графа.
    git checkout main
    git merge feature
  • Rebase перемещает коммиты одной ветки на вершину другой, переписывая историю (линейная история).
    git checkout feature
    git rebase main

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

  • merge — для публичных веток (чтобы не переписывать историю).
  • rebase — для локальной чистки истории перед пулл-реквестом.

⚠️ Rebase опасен для уже опубликованных коммитов, так как изменяет их хеши.

Видео-ответы