917 Stimmen

Suche nach dem Unterschied zwischen der aktuellen und der letzten Version

Wie können Sie mit Git den Unterschied zwischen der aktuellen und der letzten Version feststellen?

git diff last version:HEAD

1602voto

Francisco Puga Punkte 22173

Ich verstehe die Bedeutung von "letzte Version" nicht wirklich.

Da auf die vorherige Übergabe mit HEAD^ zugegriffen werden kann, denke ich, dass Sie nach etwas ähnlichem suchen:

git diff HEAD^ HEAD

Das kann auch für einen :commithash angewendet werden

git diff $commithash^ $commithash

Ab Git 1.8.5, @ ist ein Alias für HEAD so können Sie verwenden:

git diff @~..@

Die folgenden Möglichkeiten sind ebenfalls geeignet:

git show

Wenn Sie den Unterschied zwischen head und einem Commit wissen wollen, können Sie das verwenden:

git diff commit_id HEAD

Dadurch wird Ihr visuelles Diff-Tool gestartet (falls konfiguriert):

git difftool HEAD^ HEAD

Da der Vergleich mit HEAD Standard ist, können Sie ihn weglassen (wie von Orient ):

git diff @^
git diff HEAD^
git diff commit_id

Warnungen

  • @ScottF und @Panzercrisis erklären in den Kommentaren, dass unter Windows die ~ Zeichen anstelle von ^ .

198voto

CharlesB Punkte 80104

Angenommen, "aktuelle Version" ist das Arbeitsverzeichnis (nicht übertragene Änderungen) und "letzte Version" ist HEAD (zuletzt vorgenommene Änderungen für den aktuellen Zweig), machen Sie einfach

git diff HEAD

Die folgenden Informationen gehen an den Benutzer Cerran .

Und wenn Sie den Bereitstellungsraum immer mit -a bei der Übergabe, dann können Sie einfach mit git diff .

Zusammenfassung

  1. git diff zeigt nicht inszenierte Änderungen.
  2. git diff --cached zeigt schrittweise Veränderungen.
  3. git diff HEAD zeigt alle Änderungen (sowohl staged als auch unstaged).

Quelle: git-diff(1) Handbuchseite - Cerran

146voto

Nighto Punkte 3740

Wie in einer Kommentar por amalloy Wenn Sie mit "aktuelle und letzte Version" die letzte Übergabe und die Übergabe davor meinen, können Sie einfach Folgendes verwenden

git show

70voto

Tomilov Anatoliy Punkte 14605

Differenz zwischen dem vorletzten und dem letzten Commit (plus aktuellem Status, falls vorhanden):

git diff HEAD~

oder sogar (einfacher zu tippen)

git diff @~

wobei @ ist das Synonim für HEAD der aktuellen Verzweigung und ~ bedeutet: "Gib mir das Elternteil der erwähnten Revision".

64voto

naoko Punkte 4660

Sie können es auch so machen:

Vergleich mit der vorherigen Übertragung

git diff --name-status HEAD~1..HEAD

Vergleich mit den aktuellen und den beiden vorherigen Übertragungen

git diff --name-status HEAD~2..HEAD

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X