Ho appena fatto un file
git commit -m "blah"
poi ho aggiunto alcuni file, come faccio a ripristinare e rimuovere ciò che è nei miei file attuali che non sono ancora stati aggiunti / salvati?
Ho appena fatto un file
git commit -m "blah"
poi ho aggiunto alcuni file, come faccio a ripristinare e rimuovere ciò che è nei miei file attuali che non sono ancora stati aggiunti / salvati?
Risposte:
Caveat Emptor - Comandi distruttivi avanti.
Mitigazione : git reflog
può salvarti se ne hai bisogno.
1) ANNULLA le modifiche ai file locali e MANTIENI il tuo ultimo commit
git reset --hard
2) ANNULLA le modifiche al file locale e RIMUOVI l'ultimo commit
git reset --hard HEAD^
3) MANTENERE le modifiche ai file locali e RIMUOVERE il tuo ultimo commit
git reset --soft HEAD^
Se desideri rimuovere i contenuti e i file appena aggiunti che sono già messi in scena (quindi aggiunti all'indice), utilizza:
git reset --hard
Se vuoi rimuovere anche il tuo ultimo commit (è quello con il messaggio "blah") allora meglio usare:
git reset --hard HEAD^
Per rimuovere i file non tracciati (quindi i nuovi file non ancora aggiunti all'indice) e le cartelle utilizzare:
git clean --force -d
git reset --hard
forzerà la directory di lavoro a tornare all'ultimo commit ed eliminerà i file nuovi / modificati.
È possibile annullare un commit utilizzando git revert HEAD^
per ripristinare il penultimo commit. Puoi anche specificare il commit da ripristinare utilizzando l'id invece di HEAD ^
Se vuoi solo annullare l'ultimo commit usa questo:
git reset HEAD~
funziona come un fascino per me.
Un modo semplice e infallibile per ANNULLARE le modifiche ai file locali dall'ultimo commit è inserirle in un nuovo ramo:
git branch changes
git checkout changes
git add .
git commit
Questo lascia le modifiche nel nuovo ramo. Torna al ramo originale per ritrovarlo all'ultimo commit:
git checkout master
Il nuovo ramo è un buon posto per praticare diversi modi per annullare le modifiche senza il rischio di rovinare il ramo originale.