2016-05-24 25 views
145

Per errore, ho effettuato git add . e git commit nel ramo develop. Ma per fortuna, non l'ho fatto git push.Come annullare l'ultimo commit in git

Quindi volevo ripristinare lo stato originale.

Ho provato git reset --soft e git reset HEAD --hard ma sembra che l'ho incasinato.

Come posso risolvere questo problema? Voglio tornare allo stato originale e possibilmente mantenere le modifiche al codice.

risposta

374

Penso che non hai incasinato ancora. Prova:

git reset HEAD^ 

Questo porterà il dir di affermare prima di aver fatto il commit, HEAD^ significa il genitore della corrente commit (quello che non si vuole più), pur mantenendo le modifiche da esso (non è stato classificato).

+45

più uno per il ** ancora ** –

+5

Questo potrebbe essere un duplicato, ma questo è la risposta semplicistica che voglio il 90% delle volte. Grazie – geneorama

+0

Tu, signore/signora, sei un salvatore! – Amal

72

Prova semplicemente per ripristinare lo scorso impegnarsi

git reset --soft HEAD~1 
+1

'fatale: argomento ambiguo 'HEAD ~ 1': revisione sconosciuta o percorso non presente nell'albero di lavoro. Usa "-" per separare i percorsi dalle revisioni' – Green

+0

Prova a usare git bash. Se stai usando Windows, la console non funzionerà per qualche motivo, non so perché. Git bash fa così. – Fred

+0

@Green A Windows non piace 'HEAD ~ 1', racchiuderlo tra virgolette come' git reset --soft "HEAD ~ 1" ' – user568458