#заметка дня
Ну что, воспользовался
«Присаживайся поудобнее и не паникуй», — сказал себе я вчера, грохнув два дня работы моей жены.
Всё, что нам нужно знать в данный момент — что Git писали не идиоты.
Итак, в моём случае я сделал
...и обнаружил, что пара каталогов того. Пропали.
Хороший вопрос, конечно, какого хера Git это делает, но если подумать, то с точки зрения системы контроля версий-то всё ок. Потому проблема на стороне пользователя.
К счастью, Git на каждый чих строит индекс. И обладает средствами работы с этим самым индексом. Включая работу с файлами.
Для этого встроена утилита, название которой удивительно знакомо линуксоидам:
И вот она-то нам и нужна. Пишем
Да, они там лежат проименованные как хэши, но кого это когда останавливало.
Дальше дело за малым: просмотреть файлы и восстановить.
Мы восстановили все HTML/CSS/JS и даже картинки (с картинками просто: обращайте внимание на бинарные заголовки, там пишется формат).
Но, конечно, используйте мозг почаще. И делайте резервные копии. Тоже почаще.
#git #lost #recover
Ну что, воспользовался
git reset --hard
и грохнул половину репозитория, потому что не до конца понимаешь, как оно работает?«Присаживайся поудобнее и не паникуй», — сказал себе я вчера, грохнув два дня работы моей жены.
Всё, что нам нужно знать в данный момент — что Git писали не идиоты.
Итак, в моём случае я сделал
git add :/
, чтобы добавить все файлы из каталога. Потом понял, что ошибся, что мне нужны не все, и бахнул git reset --hard
....и обнаружил, что пара каталогов того. Пропали.
Хороший вопрос, конечно, какого хера Git это делает, но если подумать, то с точки зрения системы контроля версий-то всё ок. Потому проблема на стороне пользователя.
К счастью, Git на каждый чих строит индекс. И обладает средствами работы с этим самым индексом. Включая работу с файлами.
Для этого встроена утилита, название которой удивительно знакомо линуксоидам:
git fsck
. Что буквально расшифровывается как git file system check
.И вот она-то нам и нужна. Пишем
git fsck --lost-found
и все наши файлы из предыдущей версии индекса, которые не попали в текущее состояние Git, оказываются в каталоге .git/lost-found/Да, они там лежат проименованные как хэши, но кого это когда останавливало.
Дальше дело за малым: просмотреть файлы и восстановить.
Мы восстановили все HTML/CSS/JS и даже картинки (с картинками просто: обращайте внимание на бинарные заголовки, там пишется формат).
Но, конечно, используйте мозг почаще. И делайте резервные копии. Тоже почаще.
#git #lost #recover
❤27👍9🤩3