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.

Kikito
quelle

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:

Mischa Arefiev
quelle
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
EliuX
quelle