“Ho fatto un push sul repository Git remote, ma mi sono accorto che qualcosa in quel commit non andava bene.”

Rieccoci qui nel 2019 a dare un piccolo trick a tutti voi che usate Git (mi raccomando, usatelo).

Git è un software di controllo di versione distribuito che è un po’ come una scialuppa di salvataggio per noi developer. Utile quando si lavora da soli, fondamentale quando si lavora in Team.
Nel nostro workflow utilizziamo molto questo sistema per gestire il codice sorgente di ogni progetto, tenendo traccia dell’evoluzione del software.

Fatta questa introduzione, veniamo al sodo:

Ho inviato al remote un commit che per un motivo o un altro non va bene, come risolvo?

Ci sono un paio di comandi che risolvono tutto…

git reset --soft N_COMMIT

-- oppure --

git reset --hard N_COMMIT

Con questo comando lanciato sul repository LOCALE si può annullare l’ultimo commit (identificato dal suo numero N_COMMIT) in due modalità:

--soft: annulla il commit in locale, ma mantiene i file aggiornati alla versione annullata

--hard: annulla il commit in locale ripristinando anche tutti i file alla versione di commit precedente

Scegliete il comportamento che più si avvicina alle vostre esigenze.

Dopo di che lanciate il secondo comando:

git push --force

Con questo comando si esegue un push sul remote forzandolo alla versione attualmente in locale. Di fatto questo va ad eliminare l’ultimo commit anche dal remote, che in locale è stato cancellato in precedenza.

A questo punto la situazione è stata ripristinata e potete procedere con un nuovo commit, stando attenti a non commettere lo stesso errore di prima 😉

Spero che questo trick vi possa essere utile, magari condividetelo con altri devs, di sicuro farà comodo anche a loro.

Alla prossima! Ciao