У меня заняло минуту, чтобы понять, о чем вы спрашиваете:)
Git сохраняет все как минимум в течение определенного периода времени. Если вы запускаете
git fsck
Вы должны увидеть
dangling blob f2...
Это дизайн мерзавца, позволяющий вещам, на которые нет ссылок, некоторое время сидеть. Идея в том, что если вы что-то "упс", файл все еще там, чтобы найти. Это также «ленивая оптимизация», когда добавление чего-либо сохраняет состояние для фиксации в виде файла с адресным содержимым, а фиксация чего-либо - это просто создание ссылки на них. Часть очистки является отдельной. Вы должны посмотреть документацию для git prune и git gc .
По умолчанию он очищается при некотором запуске git gc
, которое происходит по крайней мере через 2 недели. Кроме того, утилита git reflog (часто используемая для спасения коммитов и перебазировок, которые все испортили) будет потеряна в случае агрессивной очистки.