597 Stimmen

Wie man den Dateidiff in Git vor der Übergabe anzeigt

Das passiert mir oft:

Ich arbeite an mehreren zusammenhängenden Änderungen zur gleichen Zeit im Laufe von ein oder zwei Tagen, und wenn es Zeit ist, zu übertragen, vergesse ich am Ende, was sich in einer bestimmten Datei geändert hat. (Dies ist nur ein persönliches Git-Repository, daher ist es für mich in Ordnung, mehr als eine Aktualisierung in einem Commit zu haben).

Gibt es eine Möglichkeit, die Änderungen zwischen meiner lokalen Datei, die gerade eingecheckt wird, und der letzten Übertragung für diese Datei in der Vorschau anzuzeigen?

Etwa so:

git diff --changed /myfile.txt

Und es würde etwas ausgedruckt werden wie:

line 23
  (last commit): var = 2+2
  (current):     var = myfunction() + 2

line 149
  (last commit): return var
  (current):     return var / 7

Auf diese Weise konnte ich schnell sehen, was ich in dieser Datei seit dem letzten Einchecken getan hatte.

964voto

Amber Punkte 473552

Wenn Sie sehen wollen, was Sie noch nicht gesehen haben git add noch nicht:

git diff myfile.txt

oder wenn Sie bereits hinzugefügte Änderungen sehen wollen

git diff --cached myfile.txt

81voto

ouah Punkte 138337
git diff HEAD file

zeigt Ihnen die Änderungen, die Sie seit dem letzten Commit an Ihrem Arbeitsbaum vorgenommen haben. Es werden alle Änderungen angezeigt, egal ob sie übertragen wurden oder nicht.

22voto

kenorb Punkte 134883

Zur Prüfung auf lokale Unterschiede:

git diff myfile.txt

oder Sie können ein Diff-Tool verwenden (falls Sie einige Änderungen rückgängig machen möchten):

git difftool myfile.txt

Zu verwenden git difftool effizienter zu arbeiten, installieren und verwenden Sie Ihr bevorzugtes GUI-Tool wie Meld, DiffMerge oder OpenDiff.

Hinweis: Sie können auch Folgendes verwenden . (anstelle des Dateinamens), um die aktuellen Änderungen im Verzeichnis zu sehen.

Um Änderungen in jeder Zeile zu überprüfen, verwenden Sie: git blame die anzeigt, welche Zeile bei welchem Commit übertragen wurde.


Um die aktuelle Datei vor der Übergabe zu sehen (wo master ist Ihr Zweig), ausführen:

git show master:path/my_file

22voto

anisbet Punkte 2632

Eine andere Technik, die Sie in Betracht ziehen sollten, wenn Sie eine Datei mit der letzten Übertragung vergleichen wollen, ist etwas pedantischer:

git diff master myfile.txt

Der Vorteil dieser Technik ist, dass man auch mit dem vorletzten Commit vergleichen kann:

git diff master^ myfile.txt

und die davor:

git diff master^^ myfile.txt

Sie können auch '~' für das Caret-Zeichen '^' und 'you branch name' für 'master' ersetzen, wenn Sie nicht auf dem Master-Zweig sind.

17voto

Display Name Punkte 3986

Unter macOS gehen Sie in das git Root-Verzeichnis und geben Sie git diff *

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