Wie kann man zeigen, was ein Commit bewirkt hat?

265

Ein dummer Weg, den ich kenne, ist:

git diff commit-number1 commit-number2

einen besseren Weg?

Ich meine, ich möchte das Commit1 selbst kennen, ich möchte das Commit2 nicht als Parameter davor hinzufügen.

Sam Liao
quelle
14
Während "git show <commit>" die richtige Lösung ist, können Sie "git diff <commit> ^!" Verwenden. um einen Unterschied zwischen Commit und seinem (ersten) übergeordneten Element zu erhalten. Siehe man git-rev-parse (1) für Details.
Jakub Narębski
Requisiten an @Jakub: git diff <commit>^!ist die Antwort, IMHO. Es ist das, was Sie in der Commit-Ansicht auf github.com sehen
Chris

Antworten:

63

Tut

$ git log -p

mach was du brauchst

Weitere Beispiele finden Sie im Kapitel über Git Log im Git Community Book. (Oder schauen Sie sich die Dokumentation an .)

Update: Wie andere ( Jakub und Bombe ) bereits betont haben: Obwohl das oben genannte funktioniert, ist git show tatsächlich der Befehl, der genau das tun soll, wonach gefragt wurde.

Mark van Lent
quelle
51

TL; DR

git show <commit>


Show

Um zu zeigen, was ein Commit mit Statistiken gemacht hat:

git show <commit> --stat

Log

So zeigen Sie das Festschreibungsprotokoll mit Unterschieden an, die für jedes Festschreiben in einem Bereich eingeführt wurden:

git log -p <commit1> <commit2>

Was ist <commit>?

Jedes Commit hat eine eindeutige ID, auf die wir hier verweisen <commit> . Die eindeutige ID ist ein SHA-1-Hash - eine Prüfsumme des von Ihnen gespeicherten Inhalts sowie eine Kopfzeile. #TMI

Wenn Sie Ihre nicht kennen <commit>:

  1. git logum den Commit-Verlauf anzuzeigen

  2. Finden Sie das Commit, das Sie interessiert.

Geoffrey Hale
quelle
22

Ich habe herausgefunden, dass "git show --stat" das Beste von allem hier ist. Es gibt Ihnen eine kurze Zusammenfassung des Commits, welche Dateien Sie hinzugefügt und geändert haben, ohne Ihnen eine ganze Reihe von Dingen zu geben, insbesondere wenn Sie viele Dateien geändert haben .

Harvey Lin
quelle
6

Dies ist ein Weg, den ich kenne. Mit gitscheint es immer mehr als einen Weg zu geben, dies zu tun.

git log -p commit1 commit2
1800 INFORMATIONEN
quelle