Git | Восстановить не добавленные файлы в Commits Times - PullRequest
0 голосов
/ 11 марта 2019

TL; DR: я не добавлял файлы, отправлял обновления, и теперь я не вижу файлы в предыдущих коммитах - я хочу восстановить их.

Что случилось: когда я зафиксировал один раз,Я забыл добавить их в индекс, а затем вернулся к предыдущей фиксации.

Есть ли способ восстановить эти файлы через diff или что-то еще?Что происходит с этими файлами, когда git пытается выполнить фиксацию, когда в хранилище есть не добавленные файлы?Git сохраняет информацию о них где-нибудь?Сохраняет ли он их где-нибудь?Он полностью удаляет их?

Я работаю над кодом Visual Studio и у меня есть GitLens, на случай, если они могут быть полезны.

Обновление: я думаю, что я обнаружил, что этинеотслеживаемые файлы были сохранены в виде висячих BLOB-объектов или недоступных объектов.В настоящее время я проверяю это направление.

1 Ответ

0 голосов
/ 12 марта 2019

Нашли решение:

* Примечание: это не восстанавливает имена файлов.

  1. Используйте git fsck --unreachable, чтобы получить список всех unreachable объектов, который отображает для каждого объекта их идентификатор SHA-1.
  2. Для каждого объекта: используйте git show <SHA-1 ID>, чтобы прочитать содержимое каждого объекта.
  3. Для каждого объекта: сохранить содержимое нужного объекта в файл. Необязательно: попытайтесь угадать имя файла на основе его содержимого.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...