Moje repozytorium przeszło takie zmiany jak:
- ... kilka niepowiązanych zatwierdzeń ...
- Zatwierdź nowy plik
foo
ze 100 wierszami treści - ... interweniujące zobowiązania, z których niektóre dotykają
foo
... - Wstaw zawartość
foo
na górze istniejącego plikubar
igit rm foo
w tym samym zatwierdzeniu - ... więcej niepowiązanych zatwierdzeń ...
Teraz chcę zobaczyć dziennik usuniętego pliku foo
. Wszystko, co przeczytałem, w tym na SO, mówi, że powinienem być w stanie git log -- foo
, ale to polecenie nie daje wyjścia.
Jeśli znajdę zatwierdzenie, które obejmuje usuwanie foo
, mogę git log 1234abcd -- foo
i zobaczyć jego dziennik, więc myślę, że moja ścieżka do foo
nie jest problemem. Zauważ również, że dane git merge-base HEAD 1234abcd
wyjściowe 1234abcd[...]
, więc myślę, że powinno to udowodnić, że zatwierdzenie jest osiągalne z HEAD
. Zauważ, że nie ma pliku foo
w moim drzewie roboczym (oczywiste, ponieważ został usunięty). Korzystanie z Git 1.7.1.1 w systemie OS X.
Dlaczego git log -- foo
u mnie nie działa i jak mogę to naprawić? Dzięki!
git log --follow -- foo
czygit log --follow -M -- foo
? (aby wymusić wykrycie zmiany nazwy)--follow
ale czytająchistory
, widzę, że odkąd wykonałem CD w innym miejscu, kiedy to wypróbowałem, unieważniając ścieżkę.git log --follow -- foo
zadziałało, gdy próbowałem od właściwego punktu wyjścia. Chyba Git rozważyć toczeniafoo
siębar
jako pewnego rodzaju zmiany nazwy? W każdym razie dziękuję! Z przyjemnością to uznam, jeśli prześlesz to ponownie jako odpowiedź.--
zmienia się na—
w tytule pytania ...Odpowiedzi:
Chcesz użyć
--follow
opcji ongit log
, która jest opisana na stronie podręcznika jako:W efekcie pozwala to nie tylko zobaczyć historię pliku o zmienionej nazwie, ale także umożliwia przeglądanie historii pliku, którego nie ma już w drzewie roboczym. Więc polecenie, którego powinieneś użyć, powinno wyglądać mniej więcej tak:
Aktualizacja:
Git 2.9+ ma teraz domyślnie włączone to dla wszystkich poleceń
git diff
igit log
:Dzięki x-yuri za heads up!
źródło
--follow
roli. Musiałem tylko dodać--
. Biegnęgit-2.9.0
.