Configurazione di un repository Git di prova:
In questa sezione, clonerò uno dei miei repository GitHub sul mio computer per configurare un repository di prova per questo articolo. Se vuoi seguire, puoi farlo anche tu. Se hai il tuo repository Git con cui lavorare, allora fantastico! Puoi usarlo anche tu.
Per clonare uno dei miei repository GitHub (https://github.com/dev-shovon/my-project), esegui il seguente comando:
$ git clone https://github.com/dev-shovon/my-project annulla_commit_demo
Il repository GitHub dovrebbe essere clonato in annulla_commit_demo/ directory.
Ora vai a annulla_commit_demo/ directory come segue:
Il commit che vuoi annullare potrebbe trovarsi in un ramo diverso dal mio. Voglio annullare l'ultimo commit del ie-fissa ramo. Quindi, devo tirare il ramo ie-fix dal mio repository GitHub.
Puoi tirare il ie-fissa ramo da GitHub come segue:
$ git pull origin ie-fixNOTA: Qui, ie-fissa è il nome del ramo.
Il ie-fix il ramo dovrebbe essere tirato.
Ora, checkout alla filiale (nel mio caso, ie-fissa) da cui si desidera annullare l'ultimo commit come segue:
$ git checkout ie-fix
Come puoi vedere, l'ultimo commit del ie-fissa il ramo è aec00f3. Nelle prossime sezioni, ti mostrerò i modi per annullare l'ultimo commit sul tuo repository Git.
Annulla l'ultimo commit e mantieni le modifiche:
Un modo per annullare l'ultimo commit è utilizzare il soft reset sul tuo repository Git. Quello che fa è, l'ultimo commit viene rimosso e le modifiche che hai apportato in quel commit vengono aggiunte all'area di staging del tuo repository Git. In questo modo, se vuoi correggere qualcosa, puoi modificare i file e aggiungere un nuovo commit.
Come puoi vedere, l'ultimo commit nel mio ie-fix il ramo è aec00f3.
$ git log --oneline
Inoltre, la mia area di sosta è pulita.
$ git stato
Ora, per rimuovere o annullare l'ultimo commit, esegui il seguente comando:
$ git reset --soft HEAD~1
Come puoi vedere, il commit aec00f3 è andato.
$ git log --oneline
Inoltre, il file che ho modificato nell'ultimo commit è nella mia area di staging.
$ git stato
Ora puoi modificare ulteriormente i file, correggere gli errori che hai commesso e ripetere le modifiche.
Annulla ultimo commit e rimuovi modifiche:
Se l'ultimo commit che vuoi rimuovere è inutile per te, puoi prendere in considerazione un hard reset sul tuo repository Git. Ciò che fa l'hard reset è che rimuove l'ultimo commit come prima. Ma rimuove anche tutte le modifiche apportate nell'ultimo commit. Esegui un hard reset solo quando sei sicuro di non aver più bisogno di nulla dell'ultimo commit.
vado a tirare il ie-fissa branch dal mio repository GitHub di nuovo per recuperare l'ultimo commit aec00f3 e rimuoverlo di nuovo in questa sezione.
$ git pull origin ie-fix
Come puoi vedere, l'ultimo commit è tornato. Se il tuo repository Git viene caricato su un servizio cloud Git come GitHub, puoi ripristinare anche qualsiasi commit rimosso per errore.
Come puoi vedere, la mia area di sosta è pulita.
$ git stato
Ora, per rimuovere l'ultimo commit e rimuovere le modifiche in quel commit, esegui il seguente comando:
$ git reset --hard HEAD~1
L'ultimo commit dovrebbe essere rimosso e il TESTA il puntatore dovrebbe essere aggiornato.
Come puoi vedere, il commit aec00f3 viene rimosso e il commit immediatamente prima di quello (3fffdee) è l'attuale l'ultimo commit.
$ git log --oneline
Anche l'area di sosta è pulita. Quindi, esistono file di modifiche dal commit rimosso.
$ git stato
Aggiornamento del repository Git remoto:
Ora che hai rimosso con successo il commit errato dal tuo repository Git, potresti voler aggiornare anche il tuo repository GitHub. Questo è l'argomento di questa sezione.
Come potete vedere, stato git mostra anche che sono indietro di 1 commit dal repository remoto.
Prima di aggiornare il mio repository GitHub, il commit aec00f3 esiste anche se l'ho rimosso dal repository Git locale come puoi vedere.
Per sincronizzare il repository Git locale con il repository GitHub, esegui il seguente comando:
$ git push --force origin ie-fixLe modifiche del repository Git locale dovrebbero essere sincronizzate con il repository GitHub.
Il repository GitHub dovrebbe essere aggiornato. Come puoi vedere, il commit aec00f3 non è più elencato. Il commit subito prima aec00f3, che è 3fffdee è ora l'ultimo commit.
Quindi, è così che annulli l'ultimo commit in Git. Grazie per aver letto questo articolo.