Не сразу. По умолчанию Git хранит то, что называется reflog, который отслеживает историю каждой ссылки (включая ветви) в течение 90 дней. До тех пор, пока не истечет срок действия записи reflog, ссылающейся на эти коммиты, Git будет продолжать хранить объекты, на которые они ссылаются, включая объект фиксации, который содержит сообщение фиксации. Только после этого git gc
очистит их.
Если вы хотите найти бывшие коммиты в вашей ветке master
, вы можете запустить git reflog master
, чтобы найти статус этой ветки в каждый момент времени. Затем вы можете найти хеш коммита для коммита, который вы хотите, убедиться, что это тот, который вам нужен, с помощью git show
, и, если необходимо, создать из него новую ветвь с git checkout -b
.
Вы также можете запустить обычный git reflog
, чтобы увидеть рефлог HEAD
, который показывает историю того, что было извлечено независимо от ветви.