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.

16voto

vhallac Punkte 12731

Haben Sie versucht -v (oder --verbose ) Option für git commit ? Es fügt den Diff der Übergabe im Nachrichteneditor hinzu.

15voto

lprsd Punkte 80189

Ich denke, dies ist der perfekte Anwendungsfall, der eine grafische Benutzeroberfläche rechtfertigt. - Obwohl ich durchaus verstehe, dass es auch gut genug in der Kommandozeile erreicht werden kann.

Ich persönlich mache jeden Commit aus dem Git-Gui. Dabei kann ich mehrere atomare Übertragungen mit separaten Hunks/Zeilen vornehmen, wenn dies sinnvoll ist.

Gut Gui ermöglicht die Anzeige der Diffs in einer gut formatierten farbigen Oberfläche, ist eher leicht. Sieht aus wie dies ist etwas, das Sie auch auschecken sollten.

6voto

VitalyB Punkte 11591

Der beste Weg, den ich gefunden habe, abgesehen von der Verwendung einer dedizierten Commit-GUI, ist die Verwendung von git difftool -d - Dies öffnet Ihr Diff-Tool im Verzeichnisvergleichsmodus und vergleicht HEAD mit dem aktuellen schmutzigen Ordner.

4voto

Tomachi Punkte 1407
git difftool -d HEAD filename.txt

Dies zeigt einen Vergleich mit dem VI Slit-Fenster im Terminal.

0voto

baptx Punkte 2810

Die Differenzierung kann erfolgen mit git diff (gefolgt vom Dateinamen oder nichts, wenn Sie die Differenz aller geänderten Dateien sehen wollen). Aber wenn Sie bereits etwas getan haben wie git add * müssen Sie rückgängig machen mit git restore --staged . Erstens.

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