Почему 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 за комментарий, предлагающий очистить журнал!
Я думал, что рефлог не был проблемой, потому что если я побежал git reflog
Я видел только одну запись, мой единственный коммит. В ответ на предложение @ torek я обнаружил, как удалить неиспользуемые объекты из репозитория git? где я нашел команду для очистки reflog.