Ответ 1
git gc --aggressive
- это один из способов принудительного выполнения процесса чернослива (обязательно: git gc --aggressive --prune=now
). У вас есть другие команды, чтобы очистить репо. Однако не забывайте, что иногда git gc
может увеличить размер репо!
Он также может использоваться после filter-branch
, чтобы отметить некоторые каталоги, которые должны быть удалены из истории (с дальнейшим увеличением пробела); см. здесь. Но это означает, что никто не отрывается от вашего публичного репо. filter-branch
может хранить резервные копии в .git/refs/original
, чтобы также можно было очистить каталог.
Наконец, как упоминалось в этом комментарии и этот вопрос; очистка reflog может помочь:
git reflog expire --all --expire=now
git gc --prune=now --aggressive
Еще более полное и, возможно, опасное решение для удаления неиспользуемых объектов из репозитория git