Ho visto molti approcci diversi per scartare le modifiche/tornare a un commit precedente utilizzando Git. Di solito riesco a capire quale funziona per la mia situazione, ma nel processo sono stato abbastanza confuso dai diversi approcci. Più di recente stavo cercando di annullare alcune rinomine di file e non importa quanto duramente ho provato a git checkout
le vecchie versioni dei file non riuscivo ancora a recuperare i miei vecchi file.Giusto modo per scartare le modifiche in Git
Sto cercando un chiarimento su quale approccio utilizzare e perché. Ecco la mia comprensione di alcuni approcci. Mi rendo conto che la risposta potrebbe essere molto contestuale, ma mi piacerebbe provare e risolvere i contesti che richiedono quali approcci.
1) git checkout -- .
- Utilizzato alla cassa l'ultima versione del file, sovrascriverà i vecchi file, ma non influirà eliminato, rinominato, o nuovi file.
2) git stash save --keep-index
seguito da git stash drop
- stashes file non impegnati, poi scende del tutto. Un buon approccio se hai commesso modifiche che vuoi mantenere e modifiche non inviate/non modificate che vuoi eliminare.
3) git reset --hard
- spazza via tutto dall'ultimo commit, tra cui file di rinomina, cancellazioni e aggiunte.
Questa è la mia attuale comprensione delle mie opzioni. Ci sono cambiamenti che vorresti apportare alle mie spiegazioni? Sono anche insicuro quando vorrei usare un git revert
al posto dei comandi di cui sopra.
messaggi Fonte:
- Can't seem to discard changes in Git
- How do I discard unstaged changes in Git?
- GIT Discard any changes I've made to a branch
Che cosa fa? Non voglio davvero riempire il mio stack con codice di cui non ho bisogno. –
Non preoccuparti di riempire la tua scorta. '-u' nasconde i file non tracciati oltre a quelli tracciati. Permette di comportarsi come fa reset. –