См. Восстановление файлов в git после сброса --hard для добавленных файлов (не зафиксировано!) . Вы можете использовать несколько ярлыков: вместо просто:
git fsck
, который печатает набор dangling blob
сообщений, которые необходимо сохранить и проверить, как показано в принятом ответе , используйте:
git fsck --lost-found
На этот раз вместо высказывания dangling blob *hash
, Git извлечет содержимое этого "висящего шарика" файл в .git/lost-found/other
. Имя извлеченного файла будет blob ha sh ID. Содержимое будет либо одним из файлов, * * * с добавленным git add .
, либо другим содержимым, оставшимся от какой-либо другой более ранней операции, которая добавила содержимое, но в итоге не использовала его. (В этом случае, поскольку сам репозиторий Git является новым, таких файлов не должно быть.)
К сожалению, имена файлов все потеряны: они были в индекс, но индекс теперь был переустановлен через git reset
и больше не имеет правильных имен файлов. Если вы можете отобразить содержимое обратно на имя файла вручную, вы можете переместить или скопировать файлы из каталога .git/lost-found/other
, чтобы они существовали с теми именами, которые у вас были изначально.
(Когда вы все закончите, вы можете удалить содержимое, если оно есть, .git/lost-found/commits
и все, что осталось в .git/lost-found/other
. В вашем случае ничего не должно быть в .git/lost-found/commits
.)