Come spostare il commit più recente su un nuovo branch in git? Si può fare? Come? In questo articolo scopriamo assieme i passi da fare!
Ciao mi chiamo Lorenzo Neri e sono un informatico: mi occupo di realizzare contenuti che aiutino persone come te a padroneggiare l’arte del nuovo millennio, l’informatica!
Devi sapere che git è uno strumento, anzi, che dico, un grandissimo alleato, quando si tratta di gestire progetti software con più persone: di fatto non posso che invitarti a scoprire tutti gli articoli che ho scritto a riguardo con un click qui!
Tra tutte le cose che ci mette a disposizione come operazioni che possiamo eseguire per gestire al meglio i branch, c’è anche quella di spostare il commit più recente che hai fatto su un nuovo branch. Ah giusto, è arrivato anche il momento di parlarne e capire come farlo!
Passo uno: ottenere il commit più recente
Stiamo parlando del commit più recente: potrebbe non essere quello dove sei attualmente “checkato”!
Come fare ad ottenere il commit più recente in un sol colpo?
Con il comando “ll”:
git ll
Se noterai il risultato, qua non c’entra più nulla il branch: solo l’ordine di registrazione dei commit stessi.
Per intenderci:

Quello più in alto è il commit più recente: del resto ce lo dice anche la data e l’orario. Ora che abbiamo capito come ottenerlo, vediamo come spostare il commit più recente su un nuovo branch in git.
Passo due: creare un nuovo branch
Beh, del resto ci serve un nuovo branch: non fare quella faccia!
Quindi, vado a creare il mio nuovo branch:
git branch il_mio_nuovo_branch
E mi ci posiziono:
git checkout il_mio_nuovo_branch
Ora? Viene il bello.
Passo tre: spostiamo il commit più recente sul nuovo branch!
Riprendendo le informazioni di prima, devo prendermi l’hash del mio commit più recente!
E poi? E poi usare il comando “cherry-pick” per prendere quel commit e portarlo sul mio nuovo branch:
git cherry-pick hash_del_commit_piu_recente
con questo comando, se tutto è andato a buon fine, otterremo questa risposta:
[il_mio_nuovo_branch parte_iniziale_dell_hash] messaggio_commit
Date: Thu Jun 3 11:04:40 2021 +0200
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 feature.txt
Ma non sempre le cose vanno a buon fine: potresti trovarti sovrascritture dei file e questa cosa a git non va MAAAAAAI giù.
Ma non ti devi ugualmente preoccupare perché la soluzione c’è, ed è a distanza di un click proprio qui.