Come mostrare le modifiche senza commit in Git e alcune differenze di Git in dettaglio


202

Come faccio a mostrare le modifiche non confermate in Git?

Ho funzionato e questi comandi non funzionano:

teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git status
On branch teyan/psservice
Your branch is up-to-date with 'origin/teyan/psservice'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   psservice.c
        modified:   psservice.vcxproj.filters


teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff

teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff master
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

Risposte:


370

Come mostrare le modifiche senza commit in Git

Il comando che stai cercando è git diff.

git diff - Mostra i cambiamenti tra commit, commit e albero di lavoro, ecc


Ecco alcune delle opzioni che espone che puoi usare

git diff(nessun parametro)
Stampa le differenze tra la directory di lavoro e l'indice.

git diff --cached:
Stampa le differenze tra l' indice e HEAD (commit corrente).

git diff HEAD:
Stampa le differenze tra la directory di lavoro e HEAD.

git diff --name-only
Mostra solo i nomi dei file modificati.

git diff --name-status
Mostra solo i nomi e lo stato dei file modificati.

git diff --color-words
Parola per parola diff invece che riga per riga.

Ecco un esempio dell'output per git diff --color-words:

inserisci qui la descrizione dell'immagine


inserisci qui la descrizione dell'immagine


2
Quando vedi il prompt dei due punti alla fine, significa che git ha mostrato la prima pagina - premi Invio per scorrere le altre modifiche (come puoi fare con il file cat | altro)
Puntatore NULL

42

Hai già messo in scena le modifiche (presumibilmente eseguendo git add), quindi per ottenere il loro diff, devi eseguire:

git diff --cached

(Un piano git diff mostrerà solo le modifiche non messe in scena.)

Per esempio: Esempio di git diff nella cache


0

Per me, l'unica cosa che ha funzionato è

git diff HEAD

compresi i file in fasi, git diff --cachedmostra solo i file in fasi.

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.