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

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

Git Лабораторна 30: Робота з великими монорепозиторіями

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

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

Тема: Оптимізація великого репозиторію: shallow clone та sparse-checkout

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

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



Крок 1. Вибрати репозиторій з великою історією або змоделювати це на тестовому.

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



Крок 2. Виконати shallow clone з обмеженою історією.

Команда: git clone --depth 1 URL bigrepo_shallow

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



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

Команда: cd bigrepo_shallow



Крок 4. Перевірити довжину історії.

Команда: git log --oneline | wc -l

Пояснення: кількість комітів буде малою через depth 1.



Крок 5. Увімкнути режим sparse-checkout.

Команда: git sparse-checkout init

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



Крок 6. Налаштувати список каталогів для отримання.

Команда: git sparse-checkout set src docs

Пояснення: інформація буде отримана тільки для каталогів src та docs.



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

Команда: ls

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



Крок 8. Збільшити глибину історії при потребі.

Команда: git fetch --deepen 10

Пояснення: додає ще 10 комітів у локальну історію.



Крок 9. Перевірити історію після поглиблення.

Команда: git log --oneline | wc -l



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

Завдання: опишіть у яких випадках ви поєднуватимете shallow clone та sparse-checkout у прод середовищах.