devdev / in the loop

Annullare ultimo commit in Git

Se sei interessato ad imparare Git, abbiamo una guida che fa al caso tuo.

Oh no, presi dalla frenesia abbiamo modificato nuovamente quel file dopo il commit.

Per annullare l’ultimo commit eseguito e riportare i file fuori dallo stage come file modificati e unstaged, non esiste un comando ufficiale. Dobbiamo quindi effettuare un reset e rieseguire il commit. Vediamo come:

$ git commit -m "Oh No! Tragico errore!"

Dopo il nostro commit “sbagliato”, eseguiamo un git reset in in questo modo:

$ git reset HEAD~

Questo comando dice a git di lasciare la nostra directory di lavoro com’era prima dell’ultimo commit e lo annulla. A questo punto riavrete i file come unstaged proprio come se fossimo tornati in dietro nel tempo. A questo punto eseguiamo le modifiche che desideriamo ed aggiungiamoli con git add:

$ git add ..

A questo punto eseguiamo il commit delle modifiche riusando il vecchio messaggio di commit. Il comando git reset  ha, a tutti gli effetti, spostato il “vecchio” HEAD  in .git/ORIG_HEAD :

$ git commit -C ORIG_HEAD

Se volessimo riscrivere il messaggio di commit e non utilizzare quello precedente, possiamo indicare il flag -c  (quindi minuscola): si aprirà un editor in cui scrivere il nuovo messaggio di commit.

Questo articolo ti è stato utile?
Git – LETTURA 4 MINUTI Come creare un nuovo repository Git a partire da un ramo esistente (mantenendo la cronologia)
Spesso i nostri progetti prendono vie inaspettate e tortuose. Cambiano i requisiti, o semplicemente le idee, o ancora più semplicemente…
Git – LETTURA 4 MINUTI Come visualizzare l’anteprima di un git merge
Quando ci apprestiamo ad unire due rami (branch) di un repository git, potremmo aver bisogno di avere un’anteprima di cosa…
Git – LETTURA 5 MINUTI Git: differenza tra fork e clone
Quando ci avviciniamo al mondo dell’open source, è fondamentale avere una conoscenza approfondita di git, perché in sostanza è l’unico…
Git – LETTURA 4 MINUTI GitHub Free adesso permette di creare repository privati gratis
Se siete utenti GitHub ma non avete un piano a pagamento attivo, questa sarà una buona settimana! Storicamente GitHub ha sempre offerto…
Roba figa da
if (weekend) {
    relax();
}
la nostra newsletter, ogni tanto.