Ответ 1
Git решает, следует ли авто gc на основе двух критериев:
- Есть ли слишком много пакетов? (Буквально есть более 50 файлов с
.idx
в.git/objects/pack
?) - Есть ли слишком много свободных объектов? (Буквально есть более 27 файлов в
.git/objects/17
?)
Если по какой-либо причине Git не может объединить файлы пакета или удалить свободные объекты в этом каталоге, он подумает, что в следующий раз ему нужно будет автоматически-gc.
Я бы проверил содержимое двух приведенных выше каталогов, чтобы узнать, соблюдены ли критерии (по умолчанию), и посмотреть, изменились ли критерии после повторной упаковки.
Некоторые причины неспособности завершить процесс могут быть следующими:
- какая-то проблема с разрешениями
- недоступные объекты, которые игнорируются командой Git сбор мусора или не обрезаны по умолчанию из-за их молодости
- недостаточно места на диске для завершения gc (repack)
- недостаточная память для завершения gc (repack)
- слишком большие, чтобы соответствовать размеру указанного пакета (см.
git config pack.packSizeLimit
, который по умолчанию не ограничен, но может быть переопределен пользователем)
Вы также должны убедиться, что настраиваемые параметры, связанные с gc, не были установлены необоснованно, посмотрев на:
git config -l | grep gc
Дополнительные сведения см. в книге Git SCM на Git Внутренние версии.