Git Gui: постоянное получение. В настоящее время в этом репозитории содержится около 320 незакрепленных объектов.

Каждый раз, когда я запускаю Git Gui над конкретным проектом, я получаю следующее сообщение:

В настоящее время в этом репозитории около 320 незакрепленных объектов.

введите описание изображения здесь

Затем я нажимаю Да и получаю следующее диалоговое окно:

введите описание изображения здесь

Дело в том, что когда я снова открываю Git Gui, я получаю то же самое сообщение, снова о 320 незакрепленных объектах! Это как если бы нажатие Да вообще не имело никакого эффекта.


person sashoalm    schedule 30.01.2014    source источник
comment
Вы можете опубликовать вывод git count-objects -v?   -  person CB Bailey    schedule 30.01.2014
comment
comment
@TheCodeArtist Спасибо, я нашел там ответ. Явный запуск git gc из командной строки работал у меня согласно этот комментарий.   -  person sashoalm    schedule 30.01.2014
comment
Связано, когда даже есть ошибки отключения при сжатии базы данных объектов: stackoverflow.com/q/11774397/1959808   -  person Ioannis Filippidis    schedule 13.05.2021


Ответы (2)


Просто пропустите всплывающее окно, как Как пропустить Loose Всплывающее окно объекта при запуске git gui предполагает, что в принятом ответе упускается из виду тот факт, что Git сообщает вам о возможной проблеме с производительностью. Это можно исправить, запустив эту команду из командной строки:

cd path/to/your/git/repo
git gc --aggressive

Из вывода git help gc:

Выполняет ряд служебных задач в текущем репозитории, таких как сжатие версий файлов (для уменьшения дискового пространства и повышения производительности) и удаление недоступных объектов, которые могли быть созданы в результате предыдущих вызовов git add.

Пользователям рекомендуется выполнять эту задачу на регулярной основе в каждом репозитории, чтобы поддерживать хорошее использование дискового пространства и хорошую производительность.

--агрессивный

Обычно git gc работает очень быстро, обеспечивая при этом хорошее использование дискового пространства и производительность. Эта опция заставит git gc более агрессивно оптимизировать репозиторий за счет гораздо большего количества времени. Эффект от этой оптимизации сохраняется, поэтому эту опцию нужно использовать только время от времени; каждые несколько сотен изменений или около того.

Это должно задержать появление подсказки на некоторое время.

person Greg Burghardt    schedule 30.01.2014
comment
Странно то, что простой запуск git gc из командной строки исправил это для меня. Может быть git gui работает что-то вроде git gc --extra-unaggressive :) - person sashoalm; 30.01.2014
comment
Кажется, что git gui вызывает "C:\Program Files\Git\bin\sh.exe" "C:/Program Files/Git/libexec/git-core/git-repack" -a -d -l - person sashoalm; 31.01.2014
comment
git prune, кажется, исправляет это, а git gc - нет. - person Mahn; 24.02.2015
comment
@Mahn Это тоже сработало для меня. (Git 1.7.1) Предположительно git gc должен вызывать git prune, но запуск вручную это то, что окончательно исправило это для меня. - person Jonathon Reinhart; 12.06.2015
comment
Обычно вы не хотите работать с --aggressive; это заставляет git пересчитывать дельты, что обычно непродуктивно и требует очень много времени; см. этот пост - страница man вводит в заблуждение. Наверное, в этом случае достаточно простого git gc. - person Jeff Clites; 09.07.2015
comment
Пришлось использовать --prune=all, чтобы избавиться от сообщения. Ни git gc в командной строке, ни параметры --aggressive или --prune не помогли. - person daw; 14.10.2016
comment
@JeffClites Статьи, на которую вы ссылаетесь, (по состоянию на эту дату) 11 лет, и по этой причине --aggressive, вероятно, будет удалена с страниц руководства и оставлена ​​как недокументированная функция на некоторое время. странно, что сломанное сообщение все еще там. Есть ли вероятность, что поведение было изменено с момента написания статьи? - person pipe; 21.03.2018
comment
@daw --prune = все не распознано - person vipin8169; 11.07.2018

Я использую команду:

git gc --prune = сейчас

и больше никаких предупреждений о слишком большом количестве незакрепленных предметов после завершения.

источник ссылки: https://git-scm.com/docs/git-gc

person AdvenC    schedule 14.11.2019
comment
Должен сказать, что это было решение, которое сработало для меня. Как ни странно, git gc --aggressive не удалил предупреждение (как и нажатие на пользовательский интерфейс, который, кажется, выполняет простую git gc). - person saeraphin; 07.10.2020