Brandon Thomson спросил в комментарии к решению Rainer Blome «s, если это просто исправили вид gitk или если рефов будет на самом деле нет. Хороший способ проверить это помнить один из SHA1 хэш (или уникальный префикс его) старых фиксаций и попробовать
$ git ls-tree hash-value
Это должно показать вам содержимое репозиториев основной папки, как это было в это совершить. После того, как
$ rm -Rf .git/refs/original
$ rm -Rf .git/logs/
, как показано на VonC и удаление refs/original/…
строки из .git/info/refs
и .git/packed-refs
, как показано на Rainer Blome, окончательный
$ git gc --prune=now
сделано не только рефов, но и старый объекты (коммиты, деревья и капли) уходят. Вышеуказанное значение git ls-tree hash-value
подтверждает это. Еще одна приятная команда для проверки этого - git count-objects -v
(запустите ее перед фильтровальным захватом и после обрезки и сравните размер).
Примечание: Поскольку мне еще не разрешено комментировать другие ответы, мне пришлось написать новый, хотя в основном он сочетает в себе предыдущие ответы.
Не уверен, но вы пробовали запустить 'git gc' после? Может быть, они все еще там как мусор ... –
@Martinho: yes Я – adk
Вам придется удалить все старые ссылки (например, названия ветвей, теги), и вы можете запустить git gc -aggressive после этого. – vdboor