Нет, ваш коммит не потерян, в этот момент на него не будет ссылаться ни одна ветка (и, как таковая, кандидат на сборку мусора), но reflog сохраняет ссылку на него некоторое время (по умолчанию 90 дней, ноВы можете проверить свою конфигурационную запись gc.reflogExpire
), чтобы иметь возможность восстановить ее.
Как?Первый возможный метод :
Условие: только если ваш терминал все еще открыт с выводом предыдущих операций.
Если это так, вы сможете легко определить хэш вашегоcommit:
git commit -m "Useful message here"
[master ec470f4] Useful message here
1 file changed, 1 insertion(+), 1 deletion(-)
Просто воссоздайте ветку в этой точке:
git checkout -b recovered-branch ec470f4
Если по какой-либо причине у вас нет такой возможности (терминал закрыт, сделал clear
, пока что, ничего), не беспокойтесь:
Второй метод, reflog
git reflog
перечисляет все предыдущие позиции HEAD
, поэтому просто получите хеш коммита, который вам нужен, и используйте ту же команду для воссоздания вашей ветви.