PassFront
  1. PassFront
  2. База знаний
  3. Слияние, rebase и конфликты

Что такое git merge?

Слияние, rebase и конфликты

`git merge` объединяет историю другой ветки с текущей.

Как работает

git switch main
git merge feature/login
  • Fast-forward — если main не менялась с момента ответвления, Git просто передвигает указатель вперёд, нового коммита нет.
  • Трёхстороннее слияние — если обе ветки менялись, Git создаёт merge-коммит с двумя родителями.

--no-ff заставляет создать merge-коммит даже при возможном fast-forward — так в истории видно, что была отдельная ветка.

Конфликты

Если обе ветки меняли одни и те же строки, Git останавливается и размечает конфликт:

<<<<<<< HEAD
const timeout = 3000;
=======
const timeout = 5000;
>>>>>>> feature/login

Нужно выбрать правильный вариант, git add и завершить слияние (git commit или git merge --continue).

Коротко для собеседования

merge соединяет ветки: fast-forward, если история линейна, иначе merge-коммит с двумя родителями; конфликты решаются вручную.

Подробнее: Pro Git — Основы слияния

Другие вопросы раздела