Це команда git-gc, яку можна запустити у безкоштовного хостинг-провайдера OnWorks за допомогою однієї з наших безкоштовних онлайн-робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
git-gc - Очистити непотрібні файли та оптимізувати локальне сховище
СИНТАКСИС
мерзотник gc [--aggressive] [--auto] [--quiet] [--prune= | --no-prune] [--force]
ОПИС
Виконує низку службових завдань у поточному сховищі, наприклад стиснення
ревізії файлів (для зменшення місця на диску та підвищення продуктивності) і видалення недоступних
об'єкти, які могли бути створені з попередніх викликів мерзотник додавати.
Користувачам пропонується регулярно запускати це завдання в кожному сховищі
підтримувати належне використання дискового простору та хорошу робочу продуктивність.
Деякі команди git можуть запускатися автоматично мерзотник gc; подробиці див. у прапорці --auto нижче. Якщо
ви знаєте, що робите, і все, що вам потрібно, це назавжди вимкнути цю поведінку
без додаткових міркувань, просто виконайте:
$ git config --global gc.auto 0
ВАРІАНТИ
-- агресивний
Зазвичай мерзотник gc працює дуже швидко, забезпечуючи добре використання дискового простору та
продуктивність. Цей варіант викличе мерзотник gc для більш агресивної оптимізації
репозиторію за рахунок цього займає набагато більше часу. Наслідки цієї оптимізації
стійкі, тому цю опцію потрібно використовувати лише час від часу; кожні кілька сотень
набори змін або так.
--авто
За допомогою цієї опції, мерзотник gc перевіряє, чи потрібне ведення домашнього господарства; якщо ні, він виходить
не виконуючи жодної роботи. Деякі команди git запускають git gc --auto після виконання
операції, які можуть створити багато незакріплених об’єктів.
Прибирання потрібне, якщо в ньому забагато незакріплених предметів або пакунків
сховище. Якщо кількість незакріплених об’єктів перевищує значення gc.auto
змінна конфігурації, тоді всі незакріплені об’єкти об’єднуються в один пакет за допомогою
git repack -d -l. Встановлення значення gc.auto на 0 вимикає автоматичне пакування
незакріплені предмети.
Якщо кількість пакетів перевищує значення gc.autoPackLimit, то наявні пакети
(крім тих, які позначені файлом .keep) об’єднуються в один пакет за допомогою
варіант -A мерзотник перепакувати. Встановлення gc.autoPackLimit на 0 вимикає автоматичне
укрупнення пачок.
--чорнослив=
Вирізати незакріплені об’єкти, старші за дату (за замовчуванням — 2 тижні тому, конфігурація може замінити)
змінна gc.pruneExpire). --prune=усі чорносливні об'єкти незалежно від їх віку (зробити
не використовуйте --prune=all, якщо ви точно не знаєте, що робите. Хіба що сховище
перебуває в стані спокою, ви втратите новостворені об’єкти, які не були прив’язані до
refs і в кінцевому підсумку пошкодить ваше сховище). --prune увімкнено за умовчанням.
--без чорносливу
Не обрізайте незакріплені предмети.
--спокійно
Приховати всі звіти про прогрес.
--сила
Примусово запускати git gc, навіть якщо на цьому запущено інший екземпляр git gc
сховище
КОНФІГУРАЦІЯ
Додаткова змінна конфігурації gc.reflogExpire можна встановити, щоб вказати, як довго
історичні записи в reflog кожної гілки повинні залишатися доступними в цьому сховищі.
Налаштування виражається, наприклад, як тривалість часу 90 днів or 3 місяців. За замовчуванням
до 90 днів.
Додаткова змінна конфігурації gc.reflogExpireUnreachable можна встановити, щоб вказати, як
довгі історичні записи рефлогів, які не є частиною поточної гілки, мають залишитися
доступні в цьому сховищі. Ці типи записів зазвичай створюються в результаті
використання git commit --amend або git rebase і чи є коміти перед зміною або rebase
що відбуваються. Оскільки ці зміни не є частиною поточного проекту, більшість користувачів захочуть це зробити
термін їх дії закінчиться швидше. Цей параметр за замовчуванням 30 днів.
Наведені вище дві конфігураційні змінні можна надати шаблону. Наприклад, це набори
нестандартні значення терміну дії лише для віддаленого відстеження гілок:
[gc "refs/remotes/*"]
reflogExpire = ніколи
reflogExpireUnreachable = 3 дні
Додаткова змінна конфігурації gc.rerereResolved вказує тривалість записів
конфліктне злиття, яке ви вирішили раніше, зберігається. За умовчанням це 60 днів.
Додаткова змінна конфігурації gc.rerereНевирішено вказує тривалість записів
конфліктне злиття, яке ви не розв’язали, зберігається. За умовчанням це 15 днів.
Додаткова змінна конфігурації gc.packRefs визначає, якщо мерзотник gc пробіжки мерзотник pack-refs.
Це можна встановити на "notbare", щоб увімкнути його в усіх неголих репозиторіях, або його можна встановити на
логічне значення. За умовчанням це значення true.
Додаткова змінна конфігурації gc.aggressiveWindow контролює кількість витраченого часу
оптимізація дельта-стиснення об’єктів у сховищі, коли --aggressive
параметр вказано. Чим більше значення, тим більше часу витрачається на оптимізацію дельти
стиснення. Перегляньте документацію щодо опції --window' у git-prepack(1) більше
деталі. За умовчанням це 250.
Подібно додаткова змінна конфігурації gc.aggressiveDepth елементи керування -- опція глибини
in git-prepack(1). За умовчанням це 250.
Додаткова змінна конфігурації gc.pruneExpire контролює, скільки років втрачається без посилання
об'єкти повинні бути перед тим, як їх обрізати. За умовчанням встановлено "2 тижні тому".
ПРИМІТКИ
мерзотник gc дуже намагається бути в безпеці щодо сміття, яке збирає. Зокрема, буде
зберігати не лише об’єкти, на які посилається ваш поточний набір гілок і тегів, але також
об’єкти, на які посилається індекс, гілки віддаленого відстеження, посилання, збережені мерзотник фільтр-гілка
у refs/original/ або reflogs (які можуть посилатися на коміти у гілках, які були пізніше
змінено або перемотано).
Якщо ви очікуєте, що деякі об’єкти будуть зібрані, але вони не збираються, позначте всі
і вирішіть, чи має сенс у вашому випадку видалити ці посилання.
ГУКИ
Команда мерзотник gc --авто команда запустить pre-auto-gc гачок. Побачити гітхуки(5) більше
інформація.
Використовуйте git-gc онлайн за допомогою сервісів onworks.net