Sì, ma dipende un po 'dalla definizione su quale sia lo "stato corrente del progetto". Il manuale per git diff continua.
Se siete interessati a confronto con il in scena modifiche:
git diff [--options] --cached [<commit>] [--] [<path>...]
Questo modulo è per visualizzare le modifiche in scena per la prossima impegnarsi rispetto al nome <commit>
. In genere si desidera il confronto con l'ultimo commit, quindi se non si fornisce <commit>
, per impostazione predefinita HEAD. Se HEAD non esiste (ad es. Rami non abbinati) e non viene fornito <commit>
, mostra tutte le modifiche graduali. --staged
è un sinonimo di --cached
.
Se siete interessati a confronto con i unstaged modifiche:
git diff [--options] <commit> [--] [<path>...]
Questo modulo è per visualizzare le modifiche che avete nel vostro albero di lavoro relativo al nome <commit>
. È possibile utilizzare HEAD per confrontarlo con l'ultimo commit o il nome di un ramo da confrontare con il tip di un ramo diverso.
Oppure, se siete solo interessati a confrontare eventuali due commit (uno potrebbe essere il capo):
git diff [--options] <commit> <commit> [--] [<path>...]
Questo è quello di visualizzare le modifiche tra due arbitrarie <commit>
s.
Così si potrebbe desiderare di eseguire git diff someOldCommit HEAD
per vedere le differenze tra someOldCommit
e l'attuale capo.
Con "lo stato attuale del progetto" mi riferivo alla directory di lavoro, so che era un po 'diffuso. Ho aggiornato la mia domanda. – HelloGoodbye
Grazie per la risposta. Quindi, 'git diff [--options] [-] [ ...]' era quello che stavo cercando allora. Nel mio caso, poiché non ho bisogno di usare alcuna opzione, e ho solo bisogno di ottenere differenze all'interno del percorso corrente, per me questo si riduce a 'git diff .' –
HelloGoodbye
O, beh, poiché voglio diff l'intero repository, e non sono sicuro che sia nella directory di primo livello, avrei bisogno di 'git diff'. Da uno script questo sarebbe 'git diff " $ (git rev-parse --show-toplevel) "'. –
HelloGoodbye