Можно ли восстановить удаленные файлы, которые добавлены, но не зафиксированы в Git?

Я новичок в git, и я только что сделал глупую ошибку, что удалил некоторые важные файлы командой "rm *". Тем не менее, я использовал "git add" для добавления этих файлов, но не для фиксации. удаление еще не добавлено. Так есть ли способ восстановить эти удаленные файлы.

Любые предложения или ответы будут оценены. Благодарю.

2 ответа

Решение

Поскольку файлы уже находятся в вашей промежуточной области (индекс), просто передайте их, используя git commit без каких-либо аргументов. Это зафиксирует содержимое индекса независимо от текущего состояния рабочего дерева.

Тогда вы можете использовать git reset --hard (если у вас нет других изменений в дереве, которое вы хотите сохранить) или git checkout FILE1 FILE2... чтобы восстановить потерянные файлы в вашем рабочем дереве.

Ты можешь использовать git fsck --lost-found найти все объекты, на которые больше нет ссылок. Вы захотите посмотреть на объекты "blob" и посмотреть, соответствует ли какой-либо из них удаленным файлам. Надеюсь, у вас не так много объектов, на которые нет ссылок.


Как указал пользователь 4815162342, автор фактически сказал, что удаление еще не было добавлено, что означает, что их можно получить с помощью git checkoutили просто пообещали прямо сейчас убедиться, что они не уйдут.

Я собираюсь оставить свой ответ на случай, если кто-то еще хочет получить информацию о git fsck --lost-found, но ответ пользователя 4815162342 должен быть принят.

Другие вопросы по тегам