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

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

Git Лабораторна 71: Імпорт tar архіву як окремої гілки

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

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

Тема: Vendor branch для зовнішніх архівів

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

Meta: зрозуміти концепцію vendor branch коли зовнішній код постачають як архів без Git історії.



Krok 1. Створити новий репозиторій vendor71.

Komandy: cd ~; mkdir vendor71; cd vendor71; git init



Krok 2. Імітувати розпакування архіву стороннього коду.

Komandy: mkdir -p lib; echo "vendor code v1" > lib/vendor.txt; git add .; git commit -m "Import vendor v1"



Krok 3. Створити тег vendor-v1.

Komanda: git tag -a vendor-v1 -m "Vendor version 1"



Krok 4. Коли виходить нова версія архіву, видалити старий вміст і додати новий.

Komandy: rm -rf lib; mkdir -p lib; echo "vendor code v2" > lib/vendor.txt; git add -A; git commit -m "Import vendor v2"



Krok 5. Створити тег vendor-v2.

Komanda: git tag -a vendor-v2 -m "Vendor version 2"



Krok 6. Переглянути історію vendor гілки.

Komanda: git log --oneline -- lib

Poyasnennya: видно послідовні імпорти архівів.



Krok 7. Створити окрему гілку integration у основному проєкті де буде підмодуль або subtree з цього репозиторію.

Poyasnennya: на практиці main репозиторій підтягує vendor як dependency.



Krok 8. Подумати як автоматизувати оновлення vendor коду при виході нових архівів.

Poyasnennya: можна мати скрипт який розпаковує нову версію, комітить і ставить тег.



Krok 9. Занотувати переваги і недоліки vendor branch у порівнянні зі звичайним git submodule або пакетним менеджером.



Krok 10. Mini zvit.

Zavdannya: опиши де в твоїх проєктах може бути корисний підхід vendor branch.