git - diff der aktuellen Änderungen vor dem Festschreiben


106

Ich habe mehrere Dateien in einem Git-Repository geändert, sie aber noch nicht festgeschrieben.

Ich kann eine Liste der Änderungen erhalten, indem ich sie einfach aufrufe git status. Aber wie erhalte ich zusätzlich zu den Dateinamen eine Liste der Zeilen oder des Inhalts , die ich geändert habe?

Ich habe anfangs über die Verwendung von git diff nachgedacht , aber es scheint nur nützlich zu sein, um bereits festgeschriebene Änderungen zu vergleichen.

Normalerweise mache ich das nur meld ., aber in diesem Fall bin ich über ssh mit einem externen Server verbunden.

Antworten:


153

git diffStandardmäßig wird der Unterschied zwischen Ihrem Arbeitsverzeichnis und dem Index angezeigt ( Staging-Bereich für das nächste Commit).

Wenn Sie die Änderungen zum Bereitstellungsbereich bereits hinzugefügt ( bereitgestellt ) haben , git diff --stagedwird der Job ausgeführt. Der Staging-Bereich sind die Daten, aus denen das nächste Commit gebildet wird git commit.

PS Gute Lektüre (IMO) für Git-Anfänger:


Gilt nicht nur für Dateien, die noch nicht hinzugefügt wurden? Ich dachte, Sie müssten die zwischengespeicherte Flagge verwenden.
pbond

4
@ Peterbond man git-diffsagt--staged is a synonym of --cached
Mischa Arefiev

2
@peterbond Technisch statt Mittel in den Bereitstellungsbereich hinzugefügt , die noch nicht eine begehen. Ich habe das in der Bearbeitung klargestellt.
Mischa Arefiev

1
@Mischa Die Dokumentation besagt, dass das Standardverhalten für darin git diffbesteht, die Differenz zwischen dem Arbeitsverzeichnis und dem Index zu berechnen , nichtHEAD
Axel

Es ist mir nicht in den Sinn gekommen, Git Diff ohne Parameter aufzurufen. Vielen Dank!
Kikito

10

Was ich für solche Fälle benutze, ist:

git diff HEAD *

Dies zeigt die Änderungen seit dem letzten Festschreiben. Obwohl es irgendwie schneller geht

git diff .

oder

git diff

git addVerwenden Sie das stagedFlag , um die Änderungen an zuvor bearbeiteten Dateien anzuzeigen:

git diff --staged
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.