Se ti stai chiedendo come eliminare commit da un branch sei quasi nel posto giusto, perché è quello che scoprirai leggendo questo articolo in meno di 5 minuti!
All’interno di un repository gesti con GIT, può succedere per la qualsiasi di voler eliminare dei commit da un branch. Operazione tanto facile quanto pericolosa se non si fanno le giuste considerazioni, è quello di cui parleremo in questo articolo.
Prima di cominciare questa nostra avventura, permettimi di presentarmi: sono Lorenzo Neri e sono un informatico! Mi occupo di realizzare contenuti che permettano a persone come te di padroneggiare l’arte del nuovo millennio: l’informatica.
Devi sapere che nel corso della mia vita lavorativa, ho fatto un macello di errori che ho raccolto in questo blog: questo articolo non ne è escluso.
Vedi, a un certo punto mi sono detto: “Ma perché non raccogliere tutti i miei errori e farne degli articoli dove mostro a persone come te che mi stai leggendo le soluzioni che ho trovato?“.
Perciò, iniziamo questa nostra avventura e cerchiamo di capire come eliminare commit da un branch.
Come eliminare più di un commit in un sol colpo
Questo è lo scenario più semplice.
Permettimi di introdurlo con un esempio:

Come vedi il commit più recente è quello con il commento “commit 3”.
Il mio obiettivo è eliminare sia lui, sia il precedente.
Questo significa che voglio fare “tabula rasa” della storia del branch “il_mio_nuovo_branch” e renderla presente solo al primo commit e quindi “commit 1”.
Per farlo, posso sfruttare il comando “git reset” in modalità hard.

Eliminare i commit tramite “git reset –hard”
Prima, ho detto che è pericoloso.
Questo comando, usato con il flag “–hard” significa letteralmente una cosa:
Stai per far fuori per sempre, forever and ever tutto quello che concerne quei commit!
Questo significa che non puoi tornare indietro.
Perciò, dopo esserti assicurato di ciò, ti basta eseguire il seguente comando:
git reset --hard HEAD^^
Ho usato “HEAD^^” per portare lo HEAD di due commit in dietro, ma potevo usare anche l’hash del commit: di fatto ottengo il seguente messaggio da GIT:
HEAD is now at f60fd38 commit 1
Con il conseguente risultato:

Devi sapere però che ci sono anche altre strade per eliminare i commit.
In questo articolo che hai appena finito di leggere ti ho mostrato sì come eliminare i commit, ma da un branch.
In quest’altro articolo ne parlo in modo più approfondito.