2011-07-01 21 views
7

Zatylizowałem całą moją pracę i wolałem nie wyjaśniać, w jaki sposób.
Jedyne, co pozostało, to obiekty git. Bardziej niż wszystko, co chciałbym odzyskać z niektórych utraconych plików graficznych. Z rozmiaru plików obiektowych mogę stwierdzić, jakie one są. Czy istnieje sposób, aby z powrotem je wykorzystać w pliki użytkowe?Odzyskiwanie plików z obiektów Git

+1

tylko obiekty git? brak informacji/oddziałów/tagów? pierwsza rzecz: tworzenie kopii zapasowych – knittl

Odpowiedz

5

Pierwsza rzecz: zrób kopię zapasową! następnie popracuj nad kopią tej kopii zapasowej.

Jeśli obiekty git nadal znajdują się we właściwym katalogu (.git/objects/xx/xxx…), możesz użyć git fsck --full, aby git je odkrył - prawdopodobnie wypisze każdy obiekt w twoim repozytorium. teraz szukaj tych oznaczonych jako commit i tag, to te, które chcesz odzyskać.

Prawdopodobnie użyłbym skryptu, który tworzy odgałęzienie dla każdego znalezionego obiektu zatwierdzenia (na przykład po prostu przypisywanie numerów rescue-1, rescue-2 itp.). następnie użyj gitk --all, aby zwizualizować wszystkie gałęzie i wybrać górny (ostatni). utwórz nowy oddział tam rescued-master.

Sprawdź swój nowy główny oddział i uruchom git branch --no-merge. powinieneś otrzymać listę rozgałęzionych zatwierdzeń, nie zawartych w master. prawdopodobnie również chcesz nadać im nową nazwę oddziału.

po zakończeniu usuń wszystkie ponumerowane numery rescue-.

nadzieję, że pomaga i daje punkt wyjścia.