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

Ответ

git merge объединяет изменения из одной ветки в другую, создавая новый коммит слияния (merge commit), сохраняя историю обеих веток. Это безопасно, но может загромождать историю.

git rebase переписывает историю, перемещая коммиты из одной ветки поверх другой, как если бы они были сделаны последовательно. Это делает историю линейной и чистой, но может вызвать конфликты и проблемы при работе в команде.

Пример:

# Слияние (merge)
git checkout main
git merge feature-branch

# Перебазирование (rebase)
git checkout feature-branch
git rebase main

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

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