Kiedy to git diff COMMIT
widzę, widzę zmiany między tym zatwierdzeniem a HEAD (o ile mi wiadomo), ale chciałbym zobaczyć zmiany dokonane przez ten pojedynczy zatwierdzenie.
Nie znalazłem żadnych oczywistych opcji na diff
/ log
, które dadzą mi takie wyjście.
git
version-control
diff
git-diff
laktak
źródło
źródło
Odpowiedzi:
Aby zobaczyć różnicę dla określonego
COMMIT
skrótu:git diff COMMIT~ COMMIT
pokaże ci różnicę międzyCOMMIT
przodkiem tego aCOMMIT
. Zobacz strony man dla git diff, aby uzyskać szczegółowe informacje na temat polecenia i gitrevisions na temat~
notacji i jej przyjaciół.Alternatywnie
git show COMMIT
zrobi coś bardzo podobnego. (Dane zatwierdzenia, w tym jego różnice - ale nie dla zatwierdzeń scalania.) Zobacz stronę man git show .źródło
^
należy cytować w skorupach Thomsona i Bourne'a (synonim|
tam) irc
jego pochodnych (operator karetki) oraz wzsh
włączonej rozszerzonejnot
globie ( operator globowania)HEAD^
implikuje to pierwszy rodzic, jeśli zatwierdzenie ma wielu rodziców (tj. Scalenie zatwierdzenia).git diff COMMIT~ COMMIT
działa dla mnie, zauważ tyldę zamiast karetki. Używam gita w wersji 2.6.1.windows.1 na Windows 10.Jak wspomniano w „ Skrót dla różnic git commit z rodzicem? ”, Możesz również używać
git diff
z:lub
W przypadku git show musisz (aby skupić się na samym diff) wykonać:
Ten
COMMIT
parametr to zatwierdzenie :Zobacz gitrevision „OKREŚLANIE ZMIAN”, aby odwołać się do zatwierdzenia.
Zobacz także „ Co oznacza drzewko w Git? ”.
źródło
Możesz także wypróbować ten prosty sposób:
źródło
git show
pokazuje zmiany wprowadzone w ostatnim zatwierdzeniu.Odpowiednik
git show HEAD
.git show HEAD~1
zabiera cię z powrotem 1 zatwierdzenie.źródło
Zwyklę robię:
Aby pokazać zmiany dotyczące ostatniego zatwierdzenia. Jeśli masz więcej zatwierdzeń, po prostu zwiększ liczbę 1 do liczby różnic, które chcesz zobaczyć.
źródło
Najpierw uzyskaj identyfikator zatwierdzenia za pomocą,
Lub
Skopiuj identyfikator zatwierdzenia.
Teraz używamy dwóch metod, aby wyświetlić listę zmian z konkretnego zatwierdzenia,
Metoda 1:
git diff commit_id^! #commit id something like this 1c6a6000asad012
Metoda 2:
źródło
^!
znaczy?To pokaże ci, co jest w tym zatwierdzeniu. Myślę, że możesz zrobić zasięg, po prostu umieszczając spację między dwoma shasami zatwierdzającymi.
co jest bardzo pomocne, jeśli często aktualizujesz dane, ponieważ dzienniki funkcji będą znajdować się w jednym rzędzie.
źródło
Ze strony podręcznika dla git-diff (1) :
Użyj trzeciego w środku:
Również z tej samej strony podręcznika u dołu, w sekcji Przykłady :
Wprawdzie jest to trochę mylące, byłoby mniej mylące jako
źródło
git diff HEAD HEAD^
.Wydaje się, że wykonują to zadanie; Używam go, aby pokazać, co zostało wniesione przez scalenie.
źródło
git log
? (z powodu stackoverflow.com/a/18585297/6309 )Inna możliwość:
źródło
Możesz użyć,
git diff HEAD HEAD^1
aby zobaczyć różnicę z zatwierdzeniem nadrzędnym.Jeśli chcesz tylko zobaczyć listę plików, dodaj
--stat
opcję.źródło
diff
polecenie, brzmi: co musiałbym zmienić w pliku, aby przejść z zatwierdzeniaHEAD
do zatwierdzeniaHEAD^1
?jest również możliwe, jeśli skonfigurowałeś swój difftool.
Zobacz tutaj, jak skonfigurować difftool, lub stronę podręcznika tutaj
Dodatkowo możesz użyć,
git diff-tree --no-commit-id --name-only -r <commit hash>
aby zobaczyć, które pliki zostały zmienione / zatwierdzone w skrócie do zatwierdzania zmianźródło
Podoba mi się poniższe polecenie do porównania konkretnego zatwierdzenia i jego ostatniego zatwierdzenia:
Przykład:
źródło
Aby zobaczyć autora i czas, użyj zatwierdzenia
git show COMMIT
. Co da w wyniku coś takiego:Jeśli chcesz zobaczyć, które pliki zostały zmienione, uruchom następujące polecenie z wartościami z powyższej linii Scal
git diff --stat a2a2894 3a1ba8f
.Jeśli chcesz zobaczyć rzeczywistą różnicę, uruchom
git --stat a2a2894 3a1ba8f
źródło
git --stat a2a2894 3a1ba8f
”. Myślę, że masz na myśligit diff a2a2894 3a1ba8f
inaczejunknown option: --stat
.Aby sprawdzić pełne zmiany:
Aby sprawdzić tylko zmienione / dodane / usunięte pliki:
UWAGA : Aby sprawdzić różnicę bez zatwierdzenia pomiędzy, nie musisz umieszczać identyfikatorów zatwierdzenia.
źródło
Korzystam z Gita w wersji 2.6.1.windows.1 na Windows 10, więc potrzebowałem niewielkiej modyfikacji odpowiedzi Nevika (tylda zamiast karetki):
Inną opcją jest zacytowanie kursora:
źródło
To polecenie zapewni ci nadrzędny hash zatwierdzenia Git:
Po tym
git diff-tool <commit-hash> <parent-commit-hash>
Przykład:
Po tym
źródło
Jeśli chcesz tylko zobaczyć zmiany w ostatnim zatwierdzeniu, po prostu ci to
git show
zapewni.źródło
W przypadku sprawdzenia zmiany źródła w widoku graficznym,
na przykład:
źródło