Frage Wie sehen Sie die Änderungen in einem Git-Commit?


Wenn ich es tue git diff COMMIT Ich sehe die Änderungen zwischen diesem Commit und HEAD (soweit ich weiß), aber ich würde gerne die Änderungen sehen, die von diesem einzelnen Commit vorgenommen wurden.

Ich habe keine offensichtlichen Optionen auf diff / log gefunden, die mir diese Ausgabe geben.


989
2017-07-10 06:22


Ursprung


Antworten:


Um das Diff für ein bestimmtes zu sehen COMMIT Hash:

git diff COMMIT~ COMMIT wird dir den Unterschied zeigen COMMIT's Vorfahren und die COMMIT. Siehe die Manpages für git diff für Details über den Befehl und Gittrevisionen über die ~ Notation und seine Freunde.

Alternative, git show COMMIT wird etwas sehr ähnliches tun. (Die Daten des Commits, einschließlich seines Diff - aber nicht für die Merge-Commits.) Siehe die git show manpage.


1277
2017-07-10 06:23



Wie in "Abkürzung für Diff von Git Commit mit seinem Elternteil?"können Sie auch verwenden git diff mit:

git diff COMMIT^!

oder

git diff-tree -p COMMIT

Mit Git Show, müssten Sie (um sich auf diff konzentrieren) tun:

git show --color --pretty=format:%b $COMMIT

Das COMMIT Parameter ist a commit-ish:

EIN Objekt committen oder Objekt Das kann rekursiv auf ein Commit-Objekt dereferenziert werden. Die folgenden sind alle commit-ishes: ein Commit-Objekt, a Tag-Objekt Dies verweist auf ein Commit-Objekt, ein Tag-Objekt, das auf ein Tag-Objekt verweist, das auf ein Commit-Objekt verweist, usw.

Sehen gitrevision "Spezifizierung von Überprüfungen" einen commit-ish referenzieren.
Siehe auch "Was bedeutet Baum-Ich in Git?".


371
2017-07-10 06:31



Sie können diesen einfachen Weg auch versuchen:

git show <COMMIT>

184
2018-06-15 09:02



git show zeigt die Änderungen, die beim letzten Commit vorgenommen wurden.

Gleichwertig git show HEAD.

git show HEAD~1 bringt dich zurück 1 commit.


48
2017-09-16 01:50



Erhalte zuerst die Commit-ID mit

git log #to list all

Oder

git log -p -1 #last one commit id

Übertragungs-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:

git show commit_id
For example: git show 1c6a600a

21
2017-07-19 05:48



Von der Manpage für git-diff (1):

git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>

Benutze die dritte in der Mitte:

git diff [options] <parent-commit> <commit>

Auch von der gleichen Manpage, ganz unten, in der Beispiele Abschnitt:

$ git diff HEAD^ HEAD      <3>

Vergleichen Sie die Version vor dem letzten Commit und dem letzten Commit.

Zugegeben, es ist ein wenig verwirrend formuliert, es wäre weniger verwirrend als

Vergleichen Sie das letzte Commit mit dem Commit davor.


20
2017-07-10 07:20



Das Folgende scheint den Job zu machen; Ich benutze es, um zu zeigen, was durch eine Zusammenführung entstanden ist.

git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>

17
2017-10-14 17:16