Ответ
git merge
объединяет изменения из одной ветки в другую, создавая новый коммит слияния (merge commit), сохраняя историю обеих веток. Это безопасно, но может загромождать историю.
git rebase
переписывает историю, перемещая коммиты из одной ветки поверх другой, как если бы они были сделаны последовательно. Это делает историю линейной и чистой, но может вызвать конфликты и проблемы при работе в команде.
Пример:
# Слияние (merge)
git checkout main
git merge feature-branch
# Перебазирование (rebase)
git checkout feature-branch
git rebase main
Когда использовать:
merge
— для публичных веток или работы в команде.rebase
— для локальных веток, чтобы упростить историю перед мержем.