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

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

Git Лабораторна 48: Часткове завантаження обʼєктів

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

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

Тема: Partial clone та promisor remotes

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

Мета: зрозуміти концепцію partial clone та сценарії коли вона корисна для дуже великих репозиторіїв.



Крок 1. Ознайомитися з довідкою по partial clone.

Команда: git help clone | grep -A5 "filter"

Пояснення: знайдіть опис параметра filter.



Крок 2. Виконати partial clone великого або тестового репозиторію.

Команда: cd ~ && git clone --filter=blob:none URL bigrepo_partial

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



Крок 3. Перейти у клонований репозиторій.

Команда: cd bigrepo_partial



Крок 4. Перевірити статистику обʼєктів.

Команда: git count-objects -v

Пояснення: кількість blob спочатку буде не повною.



Крок 5. Відкрити файл з глибокого підкаталогу.

Команда: sed -n "1,5p" якийсь_файл_у_src 2>/dev/null || echo "виберіть реальний файл зі свого репозиторію"

Пояснення: Git завантажить потрібні blob з promisor remote.



Крок 6. Ще раз переглянути count-objects.

Команда: git count-objects -v

Пояснення: кількість blob зросте лише для запитуваних файлів.



Крок 7. Подивитися конфіг promisor remote.

Команда: git config --show-origin --get-regexp "remote.*promisor"

Пояснення: origin може бути позначений як promisor.



Крок 8. Обговорити переваги і обмеження partial clone.

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



Крок 9. Зафіксувати типові параметри filter які можна використати у своїй організації.

Пояснення: наприклад blob:none або tree:0.



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

Завдання: опишіть сценарій коли partial clone суттєво прискорить onboarding нових розробників у великий монорепозиторій.