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ł?
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]
Zaraz po szarpnięciu
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
Później
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:
To jedyna odpowiedź, która pozwala sprawdzić, które pliki zmieniły się podczas ostatniego ściągania, gdy nie pamiętasz, ile zatwierdzeń zostało ściągniętych w tym czasie.
kremuwa
24
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.
To jest dobra odpowiedź, ale wyjaśnienie jest niepoprawne: „Do porównania ze źródłami, za którymi n zatwierdza się” . @{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.
wisbucky
To jest odpowiedź, której szukałem! Dzięki za wyjaśnienie @wisbucky
tamerlaha
5
Możesz sprawdzić, co się zmienia, pchając i ciągnąc za to ...
Odpowiedzi:
Pokaże nazwy plików, które zmieniły się w ciągu ostatnich dwóch zatwierdzeń.
Pokaże ci same zmiany.
Zanim pociągniesz,
Pokaże Ci, jakie zatwierdzenia zamierzasz pobrać, wraz z nazwami plików.
źródło
Przed pociągnięciem
Możesz przeglądać zmiany, jak mówi @iblue, z a
fetch
idiff
przed scaleniem:Zwróć uwagę na potrójną kropkę, która oznacza różnicę w stosunku do wspólnego rodzica i pochodzenia / mastera (zatwierdzenia zaznaczone
x
poniżej):Zaraz po szarpnięciu
Pierwsza linia w danych wyjściowych polecenia pull wygląda następująco:
Możesz wtedy po prostu zrobić:
Lub jakiekolwiek inne polecenie:
Później
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ą:
który pokaże hash po ściągnięciu, a następnie hash przed ściągnięciem:
Następnie możesz zrobić to samo z tymi dwoma hashami:
źródło
Ponieważ
git pull
jest to tylko skrót dogit fetch
igit merge
, możeszgit fetch
pobierać gałęzie ze źródła, a następnie wyświetlać różnice przed scaleniem. Lubię to:Jeśli używasz innej gałęzi niż master , powinieneś oczywiście zmienić nazwy gałęzi w powyższych poleceniach.
źródło
Możesz porównać pobraną zawartość ze źródłami bezpośrednio poprzedniego zatwierdzenia przez,
na przykład:
Aby porównać ze źródłami n zatwierdzeń za,
źródło
@{n}
Składnia faktycznie oznaczanth
poprzednią 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 omaster
, 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 ...
źródło