120 votes

Renommer une branche Git localement et à distance ?

Existe-t-il un moyen de renommer une branche Git localement et de la pousser vers la branche distante, même si de nombreux commits ont déjà été poussés vers la branche distante ?

Ou bien, est-il nécessaire de créer une nouvelle branche locale, de supprimer l'ancienne branche locale, puis de répéter l'opération sur le référentiel distant ?

210voto

Rémi B. Points 405

Oui,

la fonction move existe pour renommer la branche localement

git branch --move <old_name> <new_name>

mais pour le pousser, vous devez supprimer l'ancien et pousser le nouveau.

git checkout <new_name>
git push origin [--set-upstream] <new_name>
git push origin --delete <old_name>

--set-upstream est optionnel, il configure la nouvelle branche locale pour qu'elle suive la branche poussée.

Vous pouvez utiliser les raccourcis suivants :

  • déplacer localement (--move) :

    git branch -m <old_name> <new_name>
  • pousser une nouvelle branche (--set-upstream, optionnel) :

    git push origin [-u] <new_name>
  • delete (--delete) :

    git push origin -d <old_name>

NB.

Merci au commentaire de Torek :

A ce propos, il convient de mentionner que vous devez

  1. informer les autres utilisateurs qui partagent l'amont que vous allez le faire, et
  2. faites-le dans l'ordre indiqué (définissez le nouveau nom, puis supprimez l'ancien).

La raison du numéro 1 est que ces utilisateurs devront s'adapter.

La raison pour #2 est principalement l'efficacité : cela évite d'avoir à recopier les objets vers un dépôt amont qui supprime les commits lors de la suppression d'une branche (la plupart des dépôts nus font cela, et la plupart des dépôts qui acceptent les poussées sont nus).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X