Ti sei sempre chiesto come cambiare branch in un repository git? È quello che ho il piacere di spiegarti in questo articolo!
All’interno di un repository gestito attraverso git, ti sarà capitato almeno una volta di dover cambiare branch: vuoi perché devi testare nuove feature, vuoi perché devi fare un nuovo rilascio, vuoi per la qualunque, devi “puntare” ad un altro branch su cui non sei attualmente.
Cerchiamo di capire assieme allora, come fare tutto ciò.
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!
Effettuare il checkout per cambiare branch
Di per sé, l’operazione di “saltare da un branch all’altro”, nient’altro è che un checkout. Il checkout, se ci pensi bene, registra un cambiamento all’interno del tuo repository.
E tu, ciò che vuoi fare è proprio questo: in tutta la storia di cambiamenti che è stata registrata nel tuo repository (di per sé questo è un repository), tu ti vuoi posizionare a livello storico su un branch e un branch lo si può vedere come una lista di cambiamenti storici.
Chiarito questo aspetto, partiamo da una situazione base.
Immagina di essere attualmente posizionato su master e vuoi cambiare spostandoti sul branch “develop”.
L’operazione da fare è banalmente questa:
git checkout develop
Questo comando, sposterà lo HEAD al commit più recente effettuato sul branch “develop”.
E ti dovresti trovare in una situazione di questo tipo:

Come vedi, adesso lo HEAD punta al commit più recente di “develop”.
Spostarsi di branch evitando errori
Quali errori potrebbero mai capitare nel processo di cambio branch? Alcuni.

Il primo fra tutti: hai dei file che hanno subito modifiche e non le hai stashate/commitatte/rimosse dal tracking/rimosse e basta.
Se ti trovi in una delle situazioni che ho elencato in precedenza, ciò che ti succederà quando vorrai cambiare branch sarà questo:
git checkout master2
error: Your local changes to the following files would be overwritten by checkout:
.gitignore
Please commit your changes or stash them before you switch branches.
Aborting
Quindi letteralmente git si rifiuta di farti fare il checkout su un altro branch.
Come risolvere? Risolvendo le situazioni che ho detto prima 😀
Ma ce n’è una più infima che riguarda sempre le modifiche fatte ai file.
Mi sa che hai già capito vero?
Potrebbe capitarti di dover risolvere qualche “merge conflict” di cui ti invito a scoprire maggiori dettagli qui.