Chciałbym sprawdzić wszelkie zmiany kodu po wykonaniu git pull. Obecnie pokazuje mi tylko, które pliki się zmieniają. Jak mogę sprawdzić, który kod się zmienił?
Odpowiedzi:
git log --name-status -2
Pokaże nazwy plików, które zmieniły się w ciągu ostatnich dwóch zatwierdzeń.
git log -p -2
Pokaże ci same zmiany.
Zanim pociągniesz,
git fetch
git log --name-status origin/master..
Pokaże Ci, jakie zatwierdzenia zamierzasz pobrać, wraz z nazwami plików.
Możesz przeglądać zmiany, jak mówi @iblue, z a fetchi diffprzed scaleniem:
$ git fetch
$ git diff master...origin/master
Zwróć uwagę na potrójną kropkę, która oznacza różnicę w stosunku do wspólnego rodzica i pochodzenia / mastera (zatwierdzenia zaznaczone xponiżej):
SP---o---o [master]
\
x---x [origin/master]
Pierwsza linia w danych wyjściowych polecenia pull wygląda następująco:
$ git pull
Updating 37b431a..b2615b4
...
Możesz wtedy po prostu zrobić:
$ git diff 37b431a..b2615b4
Lub jakiekolwiek inne polecenie:
$ git log --name-status 37b431a..b2615b4
Jeśli minęło trochę czasu od wyciągnięcia i chcesz wiedzieć, jakie zmiany zostały wprowadzone przez ostatnie pociągnięcie, możesz to sprawdzić za pomocą:
$ git reflog | grep -A1 pull | head -2
który pokaże hash po ściągnięciu, a następnie hash przed ściągnięciem:
b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master
Następnie możesz zrobić to samo z tymi dwoma hashami:
git diff 37b431a..b2615b4
Ponieważ git pulljest to tylko skrót do git fetchi git merge, możesz git fetchpobierać gałęzie ze źródła, a następnie wyświetlać różnice przed scaleniem. Lubię to:
git fetch # Load changes from remote server
git diff master origin/master # Show differences
git merge origin/master # Merge remote changes with local changes
Jeśli używasz innej gałęzi niż master , powinieneś oczywiście zmienić nazwy gałęzi w powyższych poleceniach.
Możesz porównać pobraną zawartość ze źródłami bezpośrednio poprzedniego zatwierdzenia przez,
git diff branch_name@{1}
na przykład:
git diff master@{1}
Aby porównać ze źródłami n zatwierdzeń za,
git diff branch_name@{n}
@{n}Składnia faktycznie oznacza nthpoprzednią pozycję oddziału / głowy. Na przykład, jeżeli nastąpiły 10 commity ponieważ ostatni raz zrobiłeś ciągnąć, master@{1}by odnieść się do wcześniejszej pozycji o master, czyli 10 commity przed. Dlatego używanie @{n}jest przydatne do sprawdzania zmian po ściągnięciu.
Możesz sprawdzić, co się zmienia, pchając i ciągnąc za to ...
git log --stat