Как работает функция merge?
Слияние, rebase и конфликты
`git merge` вливает изменения другой ветки в текущую. Способ слияния зависит от того, расходились ли истории.
Fast-forward
Если в текущей ветке не было новых коммитов с момента ответвления, Git просто передвигает указатель вперёд — нового коммита нет, история линейная.
Трёхстороннее слияние
Если обе ветки менялись, Git берёт три версии: общего предка и концы обеих веток — и объединяет изменения. Результат — merge-коммит с двумя родителями.
git switch main
git merge feature/auth # fast-forward, если возможно
git merge --no-ff feature/auth # всегда с merge-коммитом
git merge --squash feature/auth # все изменения одним коммитом без связи ветокКонфликты
Если обе ветки изменили одни и те же строки, Git останавливается и размечает файлы маркерами <<<<<<<, =======, >>>>>>>. Нужно исправить, git add и завершить слияние (git commit или git merge --continue). Отменить — git merge --abort.
Коротко для собеседования
merge соединяет ветки: fast-forward без нового коммита или трёхстороннее слияние через общего предка с merge-коммитом; конфликты решаются вручную.
Подробнее: Pro Git — Основы слияния