#git #git_revert #git_reset #git_checkout
Вопрос: Есть ли способ в git отменить откат, т.е восстановить состояние, не закоммиченное в git`е ? Около месяца назад я создал коммит и сегодня я создал коммит( как я думал ), но коммит, как оказалось позже, не создался( моя вина ). Затем, спустя час, я решил произвести откат к последнему коммиту, но так как сегодня во время его создания произошла ошибка, я откатился к коммиту месячной давности.
Ответы
Ответ 1
Все что попадает в репозиторий не удаляется сразу, т.е. если даже ты удалил ветку, изменил коммит и т.д. есть возможность вернуться к предыдущей версии. Если же изменения были только в рабочей копии, а потом они "потерялись", то тут уж ничем не поможешь :(. Ты можешь посмотреть в логе git reflog историю изменения HEAD,еще можно перечислить все недостижимые объекты git fsck --unreachable. Может это поможет. Если ты добавлял файлы в индекс, но не закомитил их то по выводу git fsck --unreachable можно будет найти эти файлы. Содержимое файлов хранится в blob объектах. В объектах типа tree хранятся коллекции blob объектов. Увы не знаю создается ли tree объект при добавлении файлов в индекс, но если создается то все что нужно это найти недостижимый tree объект с нужными файлами. Для отображения содержимого объекта: git cat-file -p
Комментариев нет:
Отправить комментарий