Come annullare l'ultimo impegno in Git

Come annullare l'ultimo impegno in Git
Un flusso di lavoro comune in GIT è che si apportano modifiche al progetto, aggiungi le modifiche all'area di gestione tempo. Ma cosa succede se hai commesso erroneamente le tue modifiche? Bene, non temere. Puoi sempre annullare il tuo ultimo commit in Git. In questo articolo, ti mostrerò come annullare l'ultimo commit in Git. Quindi iniziamo.

Impostazione di un repository Git di prova:

In questa sezione, sto per clonare uno dei miei repository GitHub sul mio computer per impostare un repository di test per questo articolo. Se vuoi seguire, allora 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 unlu_compmit_demo

Il repository GitHub dovrebbe essere clonato UNDO_COMMIME_DEMO/ directory.

Ora, naviga su UNDO_COMMIME_DEMO/ directory come segue:

Il commit che vuoi annullare potrebbe essere in un ramo diverso come il mio. Voglio annullare l'ultimo commit del ie-fix ramo. Quindi, devo tirare il ramo ie-fix Dal mio repository github.

Puoi tirare il ie-fix Branch di Github come segue:

$ git pull origin ie-fix

NOTA: Qui, ie-fix è il nome della filiale.

IL ie-fix Il ramo dovrebbe essere tirato.

Ora, Checkout al ramo (nel mio caso, ie-fix) da cui vuoi annullare l'ultimo commit come segue:

$ git checkout ie-fix

Come puoi vedere, l'ultimo commit del ie-fix Il ramo è AEC00F3. Nelle sezioni successive, ti mostrerò i modi di annullare l'ultimo commit sul tuo repository git.

Annulla l'ultimo commit e mantieni le modifiche:

Un modo per annullare l'ultimo commit è l'uso del soft reset sul repository git. Ciò che fa è, l'ultimo commit viene rimosso e le modifiche che hai apportato in quel commit vengono aggiunte all'area di messa in scena 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 zona di stadiazione è pulita.

$ git status

Ora, per rimuovere o annullare l'ultimo commit, eseguire 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 stadiazione.

$ git status

Ora, puoi modificare ulteriormente i file, correggere gli errori che hai fatto e commettere di nuovo le modifiche.

Annullare l'ultimo commit e rimuovere le modifiche:

Se l'ultimo commit che vuoi rimuovere è inutile per te, allora potresti prendere in considerazione un hard reset sul tuo repository Git. Ciò che fa hard reset è che rimuove l'ultimo commit come prima. Ma rimuove anche tutte le modifiche che hai apportato nell'ultimo commit. Fai un hard reset solo quando sei sicuro di non aver più bisogno dell'ultimo commit.

Ho intenzione di tirare il ie-fix ramo dal mio repository github di nuovo per recuperare l'ultimo commit AEC00F3 e rimuovilo di nuovo in questa sezione.

$ git pull origin ie-fix

Come puoi vedere, l'ultimo commit è tornato. Se il tuo repository Git viene caricato in un servizio di cloud git come github, puoi ripristinare qualsiasi commit rimuovi errata anche.

Come puoi vedere, la mia zona di stadiazione è pulita.

$ git status

Ora, per rimuovere l'ultimo commit e rimuovere le modifiche in tale commit, eseguire il seguente comando:

$ git reset -testa hard ~ 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 (3FFFDEE) è l'ultimo commit dell'ultimo commit.

$ git log --oneline

Anche l'area di stadiazione è pulita. Quindi, esistono i file cambia dal commit rimosso.

$ git status

Aggiornamento del repository Git remoto:

Ora che hai rimosso correttamente il commit difettoso 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 1 impegno dietro 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, eseguire il comando seguente:

$ git push-Force Origin Ie-Fix

Le modifiche al 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 immediatamente prima AEC00F3, che è 3FFFDEE è ora l'ultimo commit.

Quindi, è così che annulla l'ultimo impegno in Git. Grazie per aver letto questo articolo.