Se te lo stessi chiedendo, è possibile rinominare un branch GIT in locale e in remoto. È un processo che richiede un po’ di accorgimenti, ma lo vedremo assieme in questo articolo.
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!
Abbiamo visto in un altro articolo come rinominare i branch in locale e ho scritto anche che non è un processo sufficiente a rendere effettive le modifiche in remoto: scopriamo come fare.
Il processo che permette di rinominare un branch GIT in locale e in remoto può avvenire in due modi:
- Rinominare il branch in locale
- Eseguire il push del branch con il nome nuovo mantenendo il nome originale in locale
Rinominare sia il branch locale sia il branch remoto
I comandi da eseguire sono i seguenti
git branch -m <nome-vecchio> <nome-nuovo>
git push <remoto> --delete <nome-vecchio>
#Se sei pigro puoi fare così:
git push <remoto> :<nome-vecchio>
git push <remoto> <nome-nuovo>
#Infine, per entrambe le varianti
git push <remoto> -u <nome-nuovo>
In questo modo, abbiamo sostanzialmente creato in prima istanza un nuovo branch in locale. Dopodiché abbiamo creato la sua copia in remoto, rimuovendo i riferimenti al nome vecchio poiché bisogna mantenere la referenza con gli stessi nomi: in locale e in remoto.
Altrimenti, le cose non funzionano come dovrebbero. Ciò detto, l’ultimo comando che ho inserito prima, serve a una cosa molto importante.
Esegue il reset dell’upstream per il nuovo branch. Non te lo scordare!

Come rinominare solamente il branch remoto
Potrebbe capitare che del branch in locale non te ne freghi assolutamente nulla, ma ti interessa agire in remoto.
In questo caso:
git push <remoto> <remoto>/<nome-vecchio>:refs/heads/<nuovo-nome>:<nome-vecchio>
In questo caso, cosa stiamo facendo?
Quello che succede qui è questo. Stiamo eseguendo la push del branch al repository remoto con il nome nuovo ma nel frattempo, stiamo mantenendo il nome del branch in locale così come è sempre stato.
Di fatto, se noterai nel comando, la parte di riga che fa riferimento ai riferimenti (giuro che non volevo fare un battuta… No non è vero), creerà l’associazione fra il nuovo nome e il nome vecchio, rispettivamente tra remoto e locale.