Восстановление файлов из объектов Git
Я уничтожил всю свою работу и предпочел бы не объяснять, как это произошло. Единственное, что у меня осталось, - это git-объекты. Больше всего на свете я хотел бы восстановить некоторые из утраченных файлов изображений. По размеру объектных файлов я могу сказать, какие они. Есть ли способ превратить их обратно в полезные файлы?
1 ответ:
Первое: сделайте резервную копию! затем поработайте над копией этой резервной копии.
Если объекты git все еще находятся в правильном каталоге (
.git/objects/xx/xxx…
), вы можете использоватьgit fsck --full
для обнаружения их в git - он, вероятно, перечислит все объекты в вашем репозитории. теперь ищите те, которые помеченыcommit
иtag
, это те, которые вы хотите восстановить.Я бы, вероятно, использовал скрипт, который создает ветвь для каждого найденного объекта фиксации (например, просто увеличивающиеся числа
rescue-1
,rescue-2
, и т.д.). после использованияgitk --all
визуализировать все ваши ветви и выбрать верхнюю (самую последнюю). создайте там новую ветвьrescued-master
.Проверьте новую главную ветвь и запустите
После того, как вы закончите, удалите все пронумерованные ветвиgit branch --no-merge
. вы должны получить список разветвленных коммитов, не содержащихся в master. вы, вероятно, хотите дать им новое название филиала тоже.rescue-
.Надеюсь, что это поможет и даст отправную точку.