Короткая версия: это означает, что он говорит, и если вы просто дадите ему закончить, все будет хорошо.
Во время большинства операций, которые потенциально могут увеличить количество незакрепленных (распакованных) объектов в хранилище (включая push-сообщения), Git вызывает git gc --auto
. Если имеется достаточно незакрепленных объектов (по умолчанию не менее 6700), он будет вызывать их git repack -d -l
для упаковки. Если есть слишком много отдельных пакетов, он также упакует их в один.
Пакет представляет собой один файл с дельта-сжатием, содержащий большое количество объектов. Более эффективно хранить объекты в пакетах, но для упаковки (сжатия) объектов требуется время, поэтому Git сначала создает незакрепленные объекты, а затем упаковывает их в пакеты время от времени посредством автоматического вызова git gc --auto
.
Если вы позволите Git закончить переупаковку, это не повторится некоторое время. Это действительно может занять некоторое время, особенно если у вас много больших бинарных объектов, но если это срабатывает, то это признак того, что это, вероятно, значительно сократит объем дискового пространства, занимаемого репо. Если вы действительно не хотите, чтобы это произошло, вы можете изменить параметр config gc.auto
. Если вы увеличите его до чего-то намного большего, чем 6700, это будет происходить реже, но это займет больше времени. Если вы уменьшите его, вам все равно придется выполнить ваш текущий перепак, но впоследствии это произойдет чаще и закончится быстрее. Если вы установите его на 0, он отключит автоматическую перепаковку.
Смотрите man git-gc
(под --auto
) и man git-config
(под gc.auto
) для получения дополнительной информации.