How To Undo Last Git Commit (Italiano)

Se sei uno sviluppatore web o un ingegnere software, è molto probabile che tu stia spingendo molti commit sul tuo Git repository tutti i giorni.

Tuttavia, in alcuni casi, hai eseguito il commit di alcuni file che non dovrebbero essere inviati al tuo repository Git.

A volte, potresti voler eseguire ulteriori modifiche prima di emettere il commit .

Di conseguenza, devi annullare l’ultimo commit dal tuo repository Git.

In questo tutorial, vedremo come puoi facilmente annullare l’ultimo commit, forse per eseguire nuovamente il commit delle modifiche in un secondo momento.

Sommario

Annulla l’ultimo commit di Git con reset

Il modo più semplice per annullare l’ultimo commit di Git è eseguire il comando “git reset” con l’opzione “–soft” che manterrà le modifiche apportate ai file. Devi specificare il commit da annullare che in questo caso è “HEAD ~ 1”.

L’ultimo commit verrà rimosso dalla cronologia di Git.

Se non si ha familiarità con questa notazione, “HEAD ~ 1” significa che si desidera reimpostare HEAD (l’ultimo commit) su un commit precedente nella cronologia del registro.

Quindi qual è l’impatto di questo comando?

Il comando “git reset” può essere visto come l’opposto del comando “git add”, essenzialmente aggiungendo file all’indice Git.

Quando si specifica l’opzione “–soft”, a Git viene chiesto di non modificare affatto i file nella directory di lavoro o nell’indice.

Come esempio , diciamo che hai aggiunto due file nel tuo commit più recente ma desideri apportare alcune modifiche a questo file.

Di conseguenza, utilizzerai “git reset” con l’opzione “–soft” per annullare l’ultimo commit ed eseguire ulteriori modifiche.

Come puoi vedere, annullando l’ultimo commit, il il file è ancora nell’indice (modifiche da sottoporre a commit) ma il commit è stato rimosso.

Fantastico, hai annullato con successo l’ultimo commit Git sul tuo repository.

Hard Reset Git commit

Nella sezione precedente, abbiamo visto come puoi facilmente annullare l’ultimo commit preservando le modifiche apportate ai file nell’indice.

In alcuni casi, vuoi semplicemente sbarazzarsi del commit e delle modifiche apportate ai file.

Questo è lo scopo dell’opzione “–hard”.

Per annullare l’ultimo commit e scartare tutte le modifiche nella directory di lavoro e nell’indice, esegui il comando “git reset” con l’opzione “–hard” e specifica il commit prima di HEAD (“HEAD ~ 1”).

Fai attenzione quando usi “–hard”: le modifiche verranno rimosse dalla directory di lavoro e dall’indice, perderai tutte le modifiche.

Tornando all’esempio descritto in precedenza, diciamo che hai salvato un nuovo file nel tuo repository Git chiamato “file1”.

Ora, facciamo finta di voler annullare l’ultimo commit e scartare tutte le modifiche.

Ottimo, vediamo ora lo stato del nostro repository Git .

Come puoi vedere, il file è stato completamente rimosso dal repository Git (indice + directory di lavoro)

Reset misto di Git commit

Per annullare l’ultimo commit di Git, mantenere le modifiche nella directory di lavoro ma NON nell’indice, devi usare il comando “git reset” con l’opzione “–mixed”. Accanto a questo comando, aggiungi semplicemente “HEAD ~ 1” per l’ultimo commit.

Ad esempio, supponiamo di aver aggiunto un file denominato ” file1 “in un commit che dobbiamo annullare.

Per annullare l’ultimo commit, eseguiamo semplicemente il comando” git reset “con l’opzione” –mixed “.

Quando si specifica l’opzione” –mixed “, il file verrà rimosso dall’indice Git ma non dalla directory di lavoro.

Di conseguenza,” –mixed “È un” mix “tra soft reset e hard reset, da cui il nome.

Fantastico! Hai trovato un altro modo per annullare l’ultimo commit preservando le modifiche apportate ai file.

Nella prossima sezione, vedremo un altro modo per ripristinare l’ultimo commit utilizzando il comando git revert.

Annulla l’ultimo commit con revert

Per ripristinare l’ultimo commit di Git , utilizza “git revert” e specifica il commit da ripristinare che è “HEAD” per l’ultimo commit della cronologia.

Il comando “git revert” è leggermente diverso dal comando “git reset” perché registrerà un nuovo commit con le modifiche introdotte annullando l’ultimo commit.

Nota anche che con “git reset “hai specificato” HEAD ~ 1 “perché il comando reset imposta una nuova posizione HEAD mentre il ripristino effettivamente ripristina il commit specificato.

Di conseguenza, dovrai eseguire nuovamente il commit delle modifiche affinché i file siano ripristinato e che il commit venga annullato.

Di conseguenza, diciamo che hai salvato un nuovo file nel tuo repository Git ma vuoi annullare questo commit.

Quando si esegue il comando “git revert”, Git aprirà automaticamente l’editor di testo per confermare le modifiche.

Quando hai finito con il messaggio di commit, verrà visualizzato un messaggio con il nuovo hash di commit.

Ora, se dovessi ispezionare nuovamente la cronologia di Git, noteresti che è stato aggiunto un nuovo commit per annullare l’ultimo commit dal tuo repository.

Conclusione

In questo tutorial, hai visto tutti i modi per annullare l’ultimo commit del tuo repository Git.

Hai imparato a conoscere “git reset “E i diversi modi di eseguirlo a seconda di ciò che si desidera conservare o meno.

Hai anche appreso la differenza tra il comando git reset e il comando git revert, quest’ultimo aggiungendo un nuovo commit in ordine per ripristinare quello dal tuo repository.

Se sei curioso di Git o del software engin eering, abbiamo una sezione completa dedicata ad esso sul sito web, quindi assicurati di dare un’occhiata!

Se ti piace Git, potrebbero piacerti i nostri altri articoli:

  • Come clonare un repository Git
  • Come annullare lo stage di file Git
  • Come eseguire i commit di Cherry Pick Git
git

Write a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *