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

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

Git Лабораторна 44: Вбудовані залежності через subtree

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

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

Тема: Git subtree: альтернатива підмодулям

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

Мета: навчитися використовувати git subtree як більш простий підхід до керування залежними репозиторіями.



Крок 1. Переконатися що у вас є окремий репозиторій який буде джерелом subtree.

Пояснення: можна повторно використати невеликий тестовий репозиторій.



Крок 2. У основному репозиторії додати remote для цього джерела.

Команда: cd ~/git_lab1 && git remote add lib_remote URL_LIB

Пояснення: замініть URL_LIB на адресу додаткового репозиторію.



Крок 3. Забрати гілку з цього remote.

Команда: git fetch lib_remote



Крок 4. Додати subtree у підкаталог libs/subtree_lib.

Команда: git subtree add --prefix=libs/subtree_lib lib_remote main --squash

Пояснення: історія бібліотеки буде зведена до одного коміту.



Крок 5. Перевірити структуру каталогу.

Команда: ls libs/subtree_lib



Крок 6. Зробити локальну зміну у subtree каталозі.

Команди: echo "local tweak" >> libs/subtree_lib/info.txt; git add libs/subtree_lib; git commit -m "Local change in subtree"



Крок 7. Оновити джерело lib_remote новими комітами.

Пояснення: у реальному житті це роблять автори бібліотеки, для лабораторії можна створити коміти у вихідному репозиторії.



Крок 8. Підтягнути оновлення у subtree.

Команда: git subtree pull --prefix=libs/subtree_lib lib_remote main --squash

Пояснення: зміни з джерела змішуються з локальними у одному дереві.



Крок 9. Подивитися історію комітів повʼязаних з subtree.

Команда: git log --oneline -- libs/subtree_lib



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

Завдання: порівняйте підхід subtree з підмодулями у контексті деплою і зручності для інших розробників.