Восстановление добавленного файла после выполнения мерзавца сбросило - твердый HEAD^

Если Вы интересуетесь тем, как проект с открытым исходным кодом действительно наполняет как это, можно проверить Терракотовый класс (Os.java), который обрабатывает этот спам здесь:

И Вы видите подобный класс для обработки версий JVM (Vm.java и VmVersion.java) здесь:

59
задан Community 23 May 2017 в 12:34
поделиться

2 ответа

Вы можете (с некоторой работой) восстановить состояние файла по последнему «git add <файл> ». Вы можете использовать

$ git fsck --cache --no-reflogs --lost-found --unreachable  HEAD

, а затем изучить файлы в каталоге '.git / lost-found / other'.

Прочтите git fsck справочную страницу.

104
ответ дан 24 November 2019 в 18:11
поделиться

На самом деле, если вы добавили объект в индекс (с помощью git add), для этого состояния объекта создается большой двоичный объект, но нет дерева (и, следовательно, commit), ссылающийся на него. Вот так получается «болтающийся» свободный объектный файл, и если вы запустите git fsck, он покажет вам не имеющий ссылки blob (git gc удалит эти типы объектов, если он запущен).

Из-за этого вы можете используйте журнал ссылок, если он у вас включен, чтобы попытаться восстановить состояние индекса для вашего файла F1, который был добавлен. Если вы вообще не добавляли F2, то, как сказал Грег, git ничего об этом не знает, и вам здесь не повезло.

4
ответ дан 24 November 2019 в 18:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: