Come è possibile creare un branch dal commit precedente? Basta poco ed è anche immediata come cosa: ti basta seguire il mio articolo!
Ogni repository ha la sua storia: a volte anche un po’ incasinata 😀
Io non sono nessuno per giudicare: le esigenze di alterare la storia di un repository e dare vita a un nuovo branch può essere dettata da tantissimi motivi.
Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!
E ovviamente, se mi stai leggendo, è perché ti trovi a voler creare un branch dal commit precedente: è uno di quei casi!
Passo uno: posizionarsi sul commit precedente
Se un branch dal commit precedente vuoi creare, su di esso ti dovrai posizionare 😛
Questo lo si può fare in due modi principalmente, ma permettimi di guidarti con un esempio nudo e crudo ok?

Se guardi bene, lo HEAD punta al commit più recente del branch “master”.
E se guardi ancora meglio, ogni commit ha il suo hash!
Quindi, lo HEAD attualmente lo abbiamo detto prima, punta al commit più recente del branch “master” che ha come hash “8e60e4d7eec65f11c253e5ce65e5e20805206dce“.
Partiamo dal presupposto che io voglio creare un branch dal commit con la descrizione “prima versione di file_main.py”.
Che (non) ironia della sorte è il commit precedente rispetto a quello a cui sto attualmente puntando!
Di fatto, la domanda da farsi più giusta sarebbe “Come posso creare un branch dal commit precedente rispetto a quello a cui lo HEAD sta attualmente puntando?”.

Gli step da fare sono due: il primo è posizionarsici, il secondo è ovviamente crearlo. Ma come ti dicevo prima abbiamo due strade per fare il primo passo: vediamole.
Posizionarsi al commit precedente
La prima strada che vediamo, è sfruttando lo HEAD. Come facciamo a tornare indietro di un commit?
Così:
git checkout HEAD^
Oppure, in quest’altro modo:
git checkout HEAD~1
O se proprio vogliamo, anche così:
git checkout master^
La seconda strada invece, consiste nello sfruttare l’hash del commit in cui ci vogliamo posizionare:
git checkout 8e60e4d7eec65f11c253e5ce65e5e20805206dce
Fun fact per i TL;DR: bastano i primi sei caratteri dell’hash per eseguire il comando con successo! 😉
Ora che abbiamo chiare entrambe le strade del primo step, tutte portano a questo scenario:

Come vedi, “HEAD” sta puntando al commit precedente: ora, procediamo allo step 2.
Creare il nuovo branch dal commit precedente
Qui non dobbiamo fare niente di trascendentale:
git branch nome_nuovo_branch
git checkout nome_nuovo_branch
Ho eseguito il checkout sul nuovo branch per un semplice discorso di “pulizia” e per puntare al nuovo branch in modo diretto:
