Supponiamo per un momento di avere un file in un repository chiamato LICENSE.txt. Il contenuto appare come segue:Come confrontare la copia di lavoro, la copia di staging e la copia impegnata di un file usando git
Copyright 2014 MyCompany. All Rights Reserved.
Fin dalla sua 2015 ho cambiato l'anno quindi il suo 2015:
Copyright 2015 MyCompany. All Rights Reserved.
E poi messo in scena il file
git add LICENSE.txt
Essere un po 'distratto, ho fatto un'altra modifica a LICENSE.txt per riflettere che un'altra organizzazione condivide il copyright.
Copyright 2015 MyCompany and Affiliates. All Rights Reserved.
Copyright 2015 Other Company. All Rights Reserved.
sono in grado di vedere la differenza tra la mia copia di lavoro e messo in scena copia eseguendo
git diff
E io sono in grado di vedere la differenza tra la copia messa in scena e la copia impegnato eseguendo
git diff --cached
Come si confronta la copia impegnata (quella senza la modifica dell'anno) con la copia di lavoro (quella con il copyright aggiuntivo)?
Questo è puramente un esempio. Ci sono casi molto più complessi in cui ho avuto la necessità di confrontare ciò che ho messo in scena con le modifiche apportate successivamente al file. Il confronto tra il contenuto della copia di lavoro e la copia in scena determinerà se sostituire la copia in scena o meno.
Sto eseguendo git 1.9.5 su Windows Server 2012 R2.
'git diff' non fa quello che rivendichi, vedi la risposta accettata. Puoi modificare il tuo post in modo che i futuri lettori non siano fuorviati? –
Ho apportato la modifica.La confusione deriva dal fatto che quando non hai messo in scena nessuna modifica, ma hai apportato una modifica alla tua copia di lavoro, 'git diff' mostrerà la differenza tra la copia di lavoro e la copia impegnata. – bloudraak
Quando non sono state apportate modifiche, 'git diff' si comporta come quando sono state apportate modifiche. Ma entrambi i diff sono uguali. –