← До списку лабораторних по Git
Повний опис / сценарій лабораторної:
Мета: навчитися акуратно використовувати git gc та git prune, розуміти коли це доцільно і чому на прод серверах краще покладатися на автоматичний режим. Крок 1. Переглянути розмір каталогу .git. Команда: cd ~/git_lab1 && du -sh .git Пояснення: зафіксуйте поточний розмір. Крок 2. Запустити git count objects. Команда: git count-objects -v Пояснення: показує кількість обʼєктів і їх розмір до компресії. Крок 3. Виконати git gc у стандартному режимі. Команда: git gc Пояснення: Git упакує обʼєкти з метою економії місця. Крок 4. Повторити git count objects. Команда: git count-objects -v Пояснення: кількість вільних обʼєктів має зменшитися. Крок 5. Ще раз перевірити розмір .git. Команда: du -sh .git Крок 6. Ознайомитися з опцією aggressive. Пояснення: git gc --aggressive може дати ще більшу економію, але потребує часу. Крок 7. На тестовому репозиторії виконати git gc --aggressive. Команда: git gc --aggressive Пояснення: робіть це тільки якщо у вас є час і немає паралельних операцій. Крок 8. Коротко вивчити git prune. Команда: git help prune | head -n 20 Пояснення: команда видаляє обʼєкти до яких немає посилань. Крок 9. Обговорити чому небезпечно запускати prune якщо покладаєтеся на reflog для відновлення. Пояснення: видалені обʼєкти можуть бути потрібні для відкату помилок. Крок 10. Міні звіт. Завдання: опишіть політику обслуговування git репозиторіїв на build серверах з точки зору gc, prune та обмежень диска.