>_ IzzyLab

Практическое задание

Разреши конфликт слияния

средне

В /root/repo файл greeting.txt в ветке main содержит строку hey, а в ветке other та же строка изменена на goodbye. Обе ветки правят одну и ту же строку, поэтому слияние даст конфликт.

Находясь на main, слей ветку other, разреши конфликт так, чтобы greeting.txt содержал ровно одну строку reconciled (без конфликтных маркеров), и заверши слияние коммитом. В результате HEAD на main должен стать merge-коммитом (с двумя родителями), а репозиторий — выйти из состояния слияния.

Что потренируешь:
  • git merge
  • разрешение конфликтов
  • merge-коммит
  • git add
  • git commit

Разбор темы

Когда две ветки правят одну и ту же строку файла, автоматическое слияние невозможно — git останавливается и вставляет в файл конфликтные маркеры (<<<<<<<, =======, >>>>>>>), разделяющие твою и чужую версии. Разрешение конфликта — это ручное приведение файла к нужному итогу с удалением маркеров, после чего файл помечается решённым через git add. Завершающий коммит склеивает истории обеих веток в один merge-коммит с двумя родителями и выводит репозиторий из состояния слияния (исчезает .git/MERGE_HEAD).

Что проверяется

  1. greeting.txt приведён к нужному виду
  2. HEAD — merge-коммит с двумя родителями
  3. слияние завершено коммитом

Как это выглядит