Почему wont git еще больше уменьшает размер репозитория?
У меня есть репозиторий с только одним фиксатором, который имеет проверочный размер 95M. Однако я не могу получить размер папки .git ниже 213M. Однако, если я создаю новый репозиторий с тем же содержимым файла, я получаю папку .git всего 38M.
Есть ли способ git перестроить его объекты таким образом, чтобы получить размер больше в соответствии с рисунком от создания нового репозитория?
Я попробовал как git gc --prune=now --aggressive
, так и git repack -adf --window=250 --depth=250
уменьшить размер репозитория. Они принесли репозиторий вниз от оригинального 220M.
Я предполагаю, что git должен хранить ссылки где-то, что предотвращает сбор мусора, но я не знаю, где они будут. Я удалил все пульты и ветки, и я не вижу ничего, кроме моей текущей ветки в разделе "refs"
$ ls -R .git/refs
.git/refs/:
heads tags
.git/refs/heads:
master
.git/refs/tags:
Я создал репозиторий из существующего с более длинной историей. Я использовал checkout --orphan
для создания новой необоснованной ветки, а затем сделал фиксацию для создания нового коммита с состоянием репозитория. Затем я удалил исходную ветвь и удалил пульты перед запуском gc
.
$ git --version
git version 1.9.4.msysgit.0
Ответы
Ответ 1
Продолжительность:
git reflog expire --all --expire=now
git gc --prune=now --aggressive
доставлена папка до 27M. Спасибо @torek за комментарий, предлагающий очистить reflog!
Я думал, что reflog не является проблемой, потому что если я побежал git reflog
, я видел только одну запись, мою единственную фиксацию. В ответ на предложение @torek я нашел Как удалить неиспользуемые объекты из репозитория git?, где я нашел команду для очистки reflog.