Wenn ich das tue, git diff COMMIT
sehe ich die Änderungen zwischen diesem Commit und HEAD (soweit ich weiß), aber ich würde gerne die Änderungen sehen, die durch dieses einzelne Commit vorgenommen wurden.
Ich habe keine offensichtlichen Optionen für diff
/ gefunden log
, die mir diese Ausgabe geben.
git
version-control
diff
git-diff
Laktak
quelle
quelle
Antworten:
So sehen Sie den Unterschied für einen bestimmten
COMMIT
Hash:git diff COMMIT~ COMMIT
zeigt Ihnen den Unterschied zwischen demCOMMIT
Vorfahren und demCOMMIT
. In den Manpages für git diff finden Sie Details zum Befehl und zu gitrevisions zur~
Notation und ihren Freunden.Alternativ
git show COMMIT
wird etwas sehr ähnliches gemacht. (Die Daten des Commits, einschließlich seiner diff - aber nicht für Merge-Commits.) Siehe die Manpage zu git show .quelle
^
in den Thomson- und Bourne-Shells (Synonym für|
dort) undrc
ihren Derivaten (Caret-Operator) undzsh
mit aktiviertem Extendedglob (not
Globbing-Operator) angegebenen Angaben gemacht werden müssenHEAD^
dies den ersten Elternteil impliziert, falls ein Commit mehrere Eltern hat (dh Merge-Commit).git diff COMMIT~ COMMIT
funktioniert bei mir, beachte die Tilde statt Caret. Ich verwende Git Version 2.6.1.windows.1 unter Windows 10.Wie in " Kurzform für Diff of Git Commit mit seinem Elternteil? " Erwähnt , können Sie auch verwenden
git diff
mit:oder
Bei git show müssten Sie (um sich nur auf diff zu konzentrieren) Folgendes tun:
Der
COMMIT
Parameter ist ein Commit-ish :Siehe gitrevision "SPECIFYING REVISIONS", um auf ein Commit-ish zu verweisen.
Siehe auch " Was bedeutet baumartig in Git? ".
quelle
Sie können auch diesen einfachen Weg ausprobieren:
quelle
git show
Zeigt die Änderungen an, die im letzten Commit vorgenommen wurden.Entspricht
git show HEAD
.git show HEAD~1
bringt dich zurück 1 Commit.quelle
Normalerweise mache ich:
Anzeigen der Änderungen bezüglich des letzten Commits. Wenn Sie mehr Commits haben, erhöhen Sie einfach die Zahl 1 auf die Anzahl der Commits, die Sie sehen möchten.
quelle
Holen Sie sich zuerst die Commit-ID mit,
Oder
Commit-ID kopieren.
Jetzt verwenden wir zwei Methoden, um Änderungen von einem bestimmten Commit aufzulisten:
Methode 1:
git diff commit_id^! #commit id something like this 1c6a6000asad012
Methode 2:
quelle
^!
?Dies zeigt Ihnen genau, was in diesem Commit enthalten ist. Ich denke, Sie können eine Reichweite erzielen, indem Sie einfach ein Leerzeichen zwischen zwei Commit-Shas setzen.
Dies ist sehr hilfreich, wenn Sie häufig neu gründen, da Ihre Feature-Protokolle alle in einer Reihe angeordnet sind.
quelle
Aus der Manpage für git-diff (1) :
Verwenden Sie die dritte in der Mitte:
Ebenfalls von derselben Manpage unten im Abschnitt Beispiele :
Zugegeben, es ist etwas verwirrend formuliert, es wäre weniger verwirrend als
quelle
git diff HEAD HEAD^
.Das Folgende scheint den Job zu machen; Ich benutze es, um zu zeigen, was durch eine Fusion gebracht wurde.
quelle
git log
? (wegen stackoverflow.com/a/18585297/6309 )Andere Möglichkeit:
quelle
Sie können
git diff HEAD HEAD^1
den Unterschied mit dem übergeordneten Commit anzeigen.Wenn Sie nur die Liste der Dateien anzeigen möchten, fügen Sie die
--stat
Option hinzu.quelle
diff
Befehl folgendermaßen lesen : Was muss ich in der Datei ändern, um von CommitHEAD
zu Commit zu gelangenHEAD^1
?ist auch möglich, wenn Sie Ihr Difftool konfiguriert haben.
Hier erfahren Sie, wie Sie difftool konfigurieren. Oder die Handbuchseite hier
Außerdem können Sie verwenden, um
git diff-tree --no-commit-id --name-only -r <commit hash>
zu sehen, welche Dateien in einem Give-Commit-Hash geändert / festgeschrieben wurdenquelle
Ich mag den folgenden Befehl, um ein bestimmtes Commit mit seinem letzten Commit zu vergleichen:
Beispiel:
quelle
Um Autor und Zeit durch Festschreiben zu sehen, verwenden Sie
git show COMMIT
. Was zu so etwas führen wird:Wenn Sie sehen möchten, welche Dateien geändert wurden, führen Sie Folgendes mit den Werten aus der obigen Zusammenführungszeile aus
git diff --stat a2a2894 3a1ba8f
.Wenn Sie den tatsächlichen Unterschied sehen möchten, führen Sie ihn aus
git --stat a2a2894 3a1ba8f
quelle
git --stat a2a2894 3a1ba8f
". Ich denke du meinstgit diff a2a2894 3a1ba8f
oder sonstunknown option: --stat
.So überprüfen Sie vollständige Änderungen:
Zum Überprüfen nur der geänderten / hinzugefügten / gelöschten Dateien:
ANMERKUNG : Um diff ohne Commit dazwischen zu überprüfen, müssen Sie die Commit-IDs nicht eingeben.
quelle
Ich verwende Git Version 2.6.1.windows.1 unter Windows 10, daher musste ich eine leichte Änderung an Neviks Antwort vornehmen (Tilde statt Caret):
Eine andere Möglichkeit ist, das Caret zu zitieren:
quelle
Mit diesem Befehl erhalten Sie den übergeordneten Git-Commit-Hash:
Nachdem
git diff-tool <commit-hash> <parent-commit-hash>
Beispiel:
Danach
quelle
Wenn Sie nur die Änderungen im letzten Commit sehen möchten,
git show
geben Sie dies einfach an .quelle
Wenn Sie die Quellenänderung in einer grafischen Ansicht überprüfen,
zum Beispiel:
quelle