Git Diff
Ostatnia aktualizacja
git diff pokazuje dokładne zmiany, linia po linii, między dwoma stanami repozytorium. Bez argumentów pokazuje to, co zmieniasz, ale czego jeszcze nie dodano do poczekalni. Dodaj --staged, żeby zobaczyć zawartość poczekalni, podaj dwa commity albo dwie gałęzie, żeby je porównać, albo podaj plik, żeby zawęzić wynik.
Wypróbuj te polecenia w terminalu online: prawdziwa powłoka w przeglądarce, bez żadnej instalacji.
Składnia
| Polecenie | Co robi |
|---|---|
git diff | Zmiany spoza poczekalni względem indeksu |
git diff --staged | Zmiany w poczekalni względem ostatniego commita |
git diff HEAD | Wszystkie zmiany od ostatniego commita |
git diff main feature | Różnica między dwiema gałęziami |
git diff <hash1> <hash2> | Różnica między dwoma commitami |
git diff -- file.txt | Zmiany w jednym pliku |
Typowe przypadki
| Cel | Polecenie |
|---|---|
| Zobaczyć, co zaraz trafi do commita | git diff --staged |
| Zobaczyć niezatwierdzoną pracę | git diff |
| Porównać swoją gałąź z main | git diff main |
| Tylko nazwy zmienionych plików | git diff --name-only |
Najczęstsze pytania o git diff
Co domyślnie pokazuje git diff?
Bez argumentów
git diff pokazuje zmiany w katalogu roboczym, których jeszcze nie ma w poczekalni, czyli to, co edytujesz od ostatniego git add. Żeby zobaczyć to, co już jest w poczekalni (i trafi do następnego commita), użyj git diff --staged; żeby zobaczyć wszystko od ostatniego commita, użyj git diff HEAD.Czym różni się git diff od git diff --staged?
git diff porównuje katalog roboczy z poczekalnią (zmiany spoza poczekalni). git diff --staged (także --cached) porównuje poczekalnię z ostatnim commitem (zmiany w poczekalni). Razem pokazują obie połowy twojej niezatwierdzonej pracy.Jak porównać dwie gałęzie albo dwa commity?
Podaj je:
git diff main feature pokazuje, czym różnią się dwie gałęzie, a git diff <hash1> <hash2> porównuje dwa commity. Dopisz na końcu -- <file>, żeby ograniczyć porównanie do jednego pliku.Jak zobaczyć tylko listę zmienionych plików, bez pełnego diffa?
Użyj
git diff --name-only, żeby zobaczyć same nazwy plików, albo git diff --stat, żeby dostać podsumowanie z każdym plikiem i liczbą zmienionych linii. Przydaje się to do szybkiego przeglądu przed czytaniem pełnego diffa linia po linii.Czy mogę to przećwiczyć online?
Tak. Otwórz terminal online i uruchom
git diff w prawdziwej powłoce w przeglądarce, bez żadnej instalacji. Darmowy interaktywny kurs Git w Coddy też krok po kroku omawia przeglądanie zmian.