EDIT
Кажется, я заметил проблему.
Возможно, вы используете Cygwin / git или MsysGit в Windows. Я заметил, что из-за
FIND: Parameter format not correct
сообщение об ошибке. Проблема в том, что где-то ваши скрипты ловушек (или git внутренне ?!) вызывают find, который не находит утилиту поиска UNIX (GNU), а скорее находит FIND.EXE для Windows (MSDOS ... sic).
Вы должны быть в состоянии исправить общий путь вашей системы. Если это не вариант, явно укажите переменную окружения PATH внутри скрипта (или перед их вызовом)
Старый ответ для информации:
git gc --auto
не всегда приводит к выполнению каких-либо действий; Вы уверены, что это занимает время каждый раз, или вы только что заметили, что это называется?
Если он вызывается каждый раз, вы можете
- проверить права доступа к репозиторию (убедитесь, что он полностью доступен для записи!)
- git fsck
- git repack
git bundle --create mybundle.git --all
и git clone mybundle.git
, чтобы посмотреть, сможете ли вы каким-то образом «встряхнуть» преступника
- посмотрите, можете ли вы перейти на более позднюю версию
- если все остальное не сработало, исправьте или отладьте двоичный файл git-gc
По желанию, когда вы потрясли преступника, вы, возможно, сможете проанализировать, что отличается между вашим «очищенным» репо и текущим.
С помощью этой опции git gc проверяет, требуется ли какая-либо служебная работа; если нет, он выходит без выполнения
любая работа. Некоторые команды git запускают git gc --auto после выполнения операций, которые могут создать много свободных
объекты.
Ведение домашнего хозяйства требуется, если в хранилище слишком много незакрепленных предметов или слишком много упаковок. Если
число потерянных объектов превышает значение переменной конфигурации gc.auto, тогда все потерянные объекты
объединяются в один пакет с помощью git repack -d -l. Установка значения gc.auto в 0 отключает
автоматическая упаковка сыпучих предметов.
Если количество пакетов превышает значение gc.autopacklimit, то существующие пакеты (кроме отмеченных
с файлом .keep) объединяются в один пакет с помощью опции -A в git repack. настройка
gc.autopacklimit в 0 отключает автоматическое объединение пакетов.