Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.53.0 → 2.55.0 no changes
-
2.52.0
2025-11-17
- 2.49.1 → 2.51.2 no changes
-
2.49.0
2025-03-14
- 2.47.1 → 2.48.2 no changes
-
2.47.0
2024-10-06
- 2.43.1 → 2.46.4 no changes
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 no changes
-
2.42.0
2023-08-21
- 2.41.1 → 2.41.3 no changes
-
2.41.0
2023-06-01
- 2.38.1 → 2.40.4 no changes
-
2.38.0
2022-10-02
- 2.37.1 → 2.37.7 no changes
-
2.37.0
2022-06-27
- 2.31.1 → 2.36.6 no changes
-
2.31.0
2021-03-15
- 2.30.1 → 2.30.9 no changes
-
2.30.0
2020-12-27
- 2.24.1 → 2.29.3 no changes
-
2.24.0
2019-11-04
- 2.22.1 → 2.23.4 no changes
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.20.1 → 2.20.5 no changes
-
2.20.0
2018-12-09
- 2.19.1 → 2.19.6 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.13.7 → 2.17.6 no changes
-
2.12.5
2017-09-22
-
2.11.4
2017-09-22
- 2.10.5 no changes
-
2.9.5
2017-07-30
- 2.7.6 → 2.8.6 no changes
-
2.6.7
2017-05-05
- 2.5.6 no changes
-
2.4.12
2017-05-05
- 2.1.4 → 2.3.10 no changes
-
2.0.5
2014-12-17
СИНОПСИС
git gc [--aggressive] [--auto] [--[no-]detach] [--quiet] [--prune=<date> | --no-prune] [--force] [--keep-largest-pack]
ОПИС
Виконує низку завдань з обслуговування в поточному репозиторії, таких як стиснення версій файлів (для зменшення місця на диску та підвищення продуктивності), видалення недоступних обʼєктів, які могли бути створені в результаті попередніх викликів git add, пакування посилань, обрізання журналу посилань (reflog), видалення метаданих rerere або застарілих робочих дерев. Також може оновлювати допоміжні індекси, такі як commit-graph.
Під час виконання типових операцій з Porcelain, що створюють об’єкти, система перевіряє, чи значно збільшився розмір репозиторію з моменту останнього обслуговування, і, якщо так, автоматично запускає команду git gc. Щоб дізнатися, як вимкнути цю функцію, див. розділ gc.auto нижче.
Виконання команди git gc вручну може знадобитися лише у випадках, коли об’єкти додаються до репозиторію без регулярного виконання таких допоміжних команд, для одноразової оптимізації репозиторію або, наприклад, для виправлення наслідків неідеального масового імпорту. Детальнішу інформацію щодо імпорту див. у розділі «ОПТИМІЗАЦІЯ PACKFILE» на сторінці git-fast-import[1].
ОПЦІЇ
- --aggressive
-
Зазвичай git gc працює дуже швидко, забезпечуючи хороше використання дискового простору та продуктивність. Ця опція призведе до того, що git gc буде більш агресивно оптимізувати репозиторій, але це займе набагато більше часу. Ефекти такої оптимізації здебільшого є постійними. Дивіться розділ «АГРЕСИВНА ОПТИМІЗАЦІЯ» нижче для отримання детальної інформації.
- --auto
-
З цією опцією git gc перевіряє, чи потрібне якесь технічне обслуговування; якщо ні, то завершується без виконання жодної роботи.
Дивіться параметр
gc.autoу розділі "КОНФІГУРАЦІЯ" нижче, щоб дізнатися, як працює ця евристика.Після того, як перевищення лімітів параметрів конфігурації, таких як
gc.autoтаgc.autoPackLimit, запустить обробку даних, усі інші завдання обробки даних (наприклад, відновлення, робота з деревами, reflog…) також будуть виконані. - --detach
- --no-detach
-
Запускати у фоновому режимі, якщо система це підтримує. Цей параметр замінює конфігурацію
gc.autoDetach. - --cruft
- --no-cruft
-
Під час видалення недоступних об’єктів слід упаковувати їх окремо в пакунок «cruft», а не зберігати як окремі об’єкти. Параметр
--cruftє стандартно увімкненим . - --max-cruft-size=<n>
-
Під час пакування недоступних об’єктів у пакунок cruft обмежте розмір нових пакунків cruft максимум до <n> байтів. Це значення має пріоритет над будь-яким значенням, вказаним у параметрі конфігурації
gc.maxCruftSize. Докладнішу інформацію див. в описі параметра--max-cruft-sizeкоманди git-repack[1]. - --expire-to=<dir>
-
Під час пакування недоступних об’єктів у пакунок cruft записати пакунок cruft, що містить об’єкти, які підлягають видаленню (якщо такі є), у теку <dir>. Ця опція діє лише у поєднанні з опцією