Wyświetlanie usuniętych plików w Git

głosy
98

Usunąłem plik z Git, a następnie popełnił, więc plik nie jest już w moim kopii roboczej. Chcę spojrzeć na zawartość tego pliku, ale nie faktycznie ją przywrócić. Jak mogę to zrobić?

Utwórz 08/09/2009 o 17:11
użytkownik
W innych językach...                            


3 odpowiedzi

głosy
112

git show HEAD^:path/to/file

Można użyć wyraźne popełnić identyfikator lub HEAD~nzobaczyć starsze wersje lub jeśli doszło do więcej niż jednego popełnić skoro go usunąć.

Odpowiedział 08/09/2009 o 17:15
źródło użytkownik

głosy
6

Ponieważ nie może przypomnieć dokładną ścieżkę, można zamiast uzyskać SHA1 z dziennika git następnie można po prostu wydać

 git cat-file -p <sha1>
Odpowiedział 02/05/2012 o 00:55
źródło użytkownik

głosy
34

Jeśli jest to plik usuniesz jakiś czas temu i nie chcą polować na rewizji , można użyć (plik jest nazwany foow tym przykładzie, można wykorzystać pełną ścieżkę):

git show $(git rev-list --max-count=1 --all -- foo)^:foo

rev-listWywołanie wygląda dla wszystkich korekt fooale tylko jedną listę. Ponieważ rev-listlist w odwrotnym porządku chronologicznym, a następnie co wymienia to ostatnia wersja, która zmieniła foo, co byłoby popełnić że usunięte foo. (Ta opiera się na założeniu, że git nie pozwala usunięty plik zostać zmienione, a jednak pozostają usunięte.) Nie można po prostu użyć rewizji który rev-listpowraca jak jest , bo foojuż nie istnieje tam. Trzeba poprosić o jeden tuż przed nią, która zawiera ostatnią wersję pliku, stąd ^in git show.

Odpowiedział 01/11/2013 o 11:31
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more