← До списку лабораторних по Git
Повний опис / сценарій лабораторної:
Мета: відпрацювати сценарій коли фіча розроблялася довго, основна гілка сильно змінилася і 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 при злитті довгоживучих фіч у командних репозиторіях.