git - diff delle modifiche correnti prima di eseguire il commit


106

Ho modificato diversi file in un repository git, ma non li ho ancora salvati.

Posso ottenere un elenco delle modifiche semplicemente invocando git status. Ma come ottengo un elenco delle righe o del contenuto che ho modificato, oltre ai nomi dei file?

Inizialmente ho pensato di utilizzare git diff , ma sembra essere utile solo per confrontare le modifiche già impegnate.

Di solito lo faccio meld ., ma in questo caso sono connesso a un server esterno tramite ssh.

Risposte:


153

git diffper impostazione predefinita mostra la differenza tra la directory di lavoro e l' indice ( area di staging per il commit successivo).

Se hai già aggiunto ( messo in scena ) le modifiche all'area di staging , git diff --stagedfa il lavoro. L'area di staging è i dati da cui verrà formato il commit successivo git commit.

PS Buona lettura (IMO) per i principianti di Git:


Lo staging non si applica solo ai file non ancora aggiunti? Pensavo dovessi usare il flag memorizzato nella cache.
pbond

4
@peterbond man git-diffdice--staged is a synonym of --cached
Mischa Arefiev

2
@peterbond Tecnicamente messo in scena significa aggiunto all'area di staging che non è ancora un commit. L'ho chiarito nella modifica.
Mischa Arefiev

1
@Mischa La documentazione dice che il comportamento predefinito per git diffè calcolare la differenza tra la directory di lavoro e l'indice , nonHEAD
Axel

Non mi è venuto in mente di invocare git diff senza parametri. Grazie!
kikito

10

Quello che uso per questi casi è:

git diff HEAD *

Questo mostrerà le modifiche dall'ultimo commit. Anche se in qualche modo funziona più velocemente con

git diff .

o

git diff

Per vedere le modifiche sui git addfile precedentemente modificati , usa il stagedflag:

git diff --staged
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.