Проверяет понимание типов merge‑операций и их эффектов на истории.
git merge объединяет две ветки: если изменения не пересекаются, создаёт fast‑forward (перемещает указатель ветки). При наличии расхождений — создаёт новый «merge‑коммит», объединяющий родительские ветки, сохраняя обе истории. Он позволяет сохранить информацию об объединении и точки ветвления.
Fast‑forward merge:
Если целевая ветка не имеет новых коммитов над базой, указатель просто перемещается вперёд.
История остаётся линейной без merge‑коммита.
Three‑way merge:
При расхождении веток Git находит общий предок, потом применяет изменения обеих веток.
Создаётся новый коммит с двумя родителями.
Merge‑конфликты:
Если одно и то же место изменено в обеих ветках, Git остановится и попросит разрешить конфликт.
После разрешения — git add и git commit.
Опции:
--no-ff заставляет всегда создавать merge‑коммит.
--squash объединяет все изменения в один коммит без сохранения истории.
Вывод:
merge позволяет интегрировать параллельные разработки и сохранять контекст ветвления.