Renommer une branche Git localement et à distance? [dupliquer]

cette question a déjà une réponse ici:

est-il possible de renommer une branche Git localement et de la pousser vers la branche distante, même s'il y a déjà beaucoup de propagations poussées vers la branche distante branche?

Ou, est-il nécessaire de créer une nouvelle branche locale, supprimer l'ancien local de la branche, puis répétez l'opération sur le dépôt distant?

54
demandé sur DavidRR 2016-05-03 12:05:09

1 réponses

Oui,

la caractéristique 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 suivre la poussée

vous pouvez utiliser les raccourcis suivants:

  • déplacer Local (--move) :

    git branch -m <old_name> <new_name>
    
  • push nouvelle branche (--set-en amont, en option) :

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

    git push origin -d <old_name>
    

NB.

merci au commentaire de torek:

digne de mention, soit dit en passant, est que vous devriez

  1. partager l'amont que vous allez faire ceci, et
  2. faites ceci dans l'ordre indiqué (définissez un nouveau nom, puis supprimez l'ancien).

la raison pour #1 est que ces utilisateurs devront s'adapter.

la raison pour #2 est principalement l'efficacité: elle évite d'avoir à re-copier des objets vers un repo amont qui laisse tomber des propagations sur la suppression de branche (la plupart des dépôts nus font cela, et la plupart des dépôts qui acceptent des pushes sont nus)

112
répondu Rémi Becheras 2018-01-04 19:34:33