← До фільтрів та технологій

← До списку лабораторних по Git

Git Лабораторна 24: Стратегія розвʼязання складних merge конфліктів

Технологія: Git

Номер лабораторної: 24 · Рівень: middle

Тема: Конфлікти при злитті гілок з довгою історією

Повний опис / сценарій лабораторної:

Мета: відпрацювати сценарій коли фіча розроблялася довго, основна гілка сильно змінилася і merge створює багато конфліктів.



Крок 1. Створити гілку long-feature.

Команди: cd ~/git_lab1; git switch -c long-feature



Крок 2. Додати новий модуль у файл src/module24.txt.

Команди: mkdir -p src; echo "module 24 v1" > src/module24.txt; git add src/module24.txt; git commit -m "Add module24 v1"



Крок 3. Зробити ще один коміт у long-feature.

Команди: echo "module 24 v2" >> src/module24.txt; git add src/module24.txt; git commit -m "Update module24 to v2"



Крок 4. Повернутися у main та паралельно зробити зміни у тому ж файлі.

Команда: git switch main

Команди: mkdir -p src; echo "module 24 main version" > src/module24.txt; git add src/module24.txt; git commit -m "Create module24 in main"



Крок 5. Знову перейти у long-feature і підтягнути останні зміни main через rebase.

Команди: git switch long-feature; git rebase main

Пояснення: rebase може створити конфлікт.



Крок 6. Якщо є конфлікти, відкрити файл src/module24.txt і вручну їх вирішити.

Пояснення: обʼєднайте логіку обох версій у єдиний текст.



Крок 7. Після вирішення конфлікту продовжити rebase.

Команди: git add src/module24.txt; git rebase --continue



Крок 8. Перевірити історію після rebase.

Команда: git log --oneline --graph --decorate -n 10

Пояснення: коміти long-feature тепер базуються на останньому main.



Крок 9. Злити long-feature назад у main без конфліктів.

Команди: git switch main; git merge long-feature



Крок 10. Міні звіт.

Завдання: опишіть плюси і мінуси використання rebase проти merge при злитті довгоживучих фіч у командних репозиторіях.