2009-08-20 13 views
17

Jak wyświetlić różnice w pliku z ostatnich 5 zatwierdzeń do bieżącego, niezatwierdzonego pliku przez Git-show?Porównywanie zmian w zatwierdzeniach do bieżącego pliku przez Git

Dokonałem zmiany w moim pliku, który zepsuł mój kod. Jednak nie wiem, gdzie jest ta zmiana.

Chciałbym porównać bieżące niezatwierdzone pliki do ostatniego zatwierdzenia (HEAD), do poprzedniego zatwierdzenia (^ HEAD) i co najmniej 3 commits głębiej.

Jednak nie wiem, jak możesz to zrobić wydajnie.

Próbując zobaczyć zmiany z pięciu ostatnich zatwierdzeń z jednego pliku do bieżącego pliku w danym oddziale, ja bezskutecznie prowadził

git show next~5:handle_questions.php 

Odpowiedz

38

Oto moja oszukiwać arkuszy:

# uncommited file to HEAD 
git diff <path> 

# uncommited file to before last commit 
git diff HEAD^ -- <path> 

#last commit to before last commit 
git diff HEAD^ HEAD -- <path> 

#difference between HEAD and n-th grandparent 
git diff HEAD~n HEAD -- <path> 

#Another cool feature is whatchanged command 
git whatchanged -- <path> 
+0

w jaki sposób zrobiłbyś niezatwierdzony plik względem innej ścieżki do pliku z ostatniego zatwierdzenia? – Maslow

+0

Nie sądzę, że to możliwe. Opis git diff: "Pokaż zmiany między drzewem roboczym a indeksem lub drzewem, zmianami między indeksem a drzewem, zmianami między dwoma drzewami lub zmianami między dwoma plikami na dysku." –

3

Można użyć git przepoławiać wyśledzić popełnić która wprowadziła pluskwa.

3

Aby zobaczyć diff między handle_questions.php w katalogu roboczym i w repozytorium 5 zobowiązuje się do tyłu, zastosowanie:

 
$ git diff HEAD~5 handle_questions.php 
2

Jeśli znasz plik, w którym dokonano zmiany, można również użyć git blame <path> - spowoduje to zapoznanie się z historią każdego wiersza kodu w następującym formacie:

SHA (Author Timestamp Line Number) code 
+0

To jest świetne polecenie! Dziękujemy za udostępnienie. –

Powiązane problemy