web-dev-qa-db-fra.com

Renommer une branche Git localement et à distance?

Existe-t-il un moyen de renommer une branche Git localement et de l'envoyer à la branche distante, même s'il existe déjà de nombreux commits envoyés à la branche distante?

Ou 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?

114
Rémi Becheras

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 facultatif, il configure la nouvelle branche locale pour suivre celle qui est insérée

Vous pouvez utiliser les raccourcis suivants:

  • se déplacer localement (--move):

    git branch -m <old_name> <new_name>
    
  • Poussez 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:

À propos, à propos, c’est que vous devriez

  1. informez les autres utilisateurs qui se trouvent en amont que vous le ferez, et
  2. faites cela 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 d'être de # 2 est principalement liée à l'efficacité: elle évite de copier à nouveau des objets dans un référentiel en amont qui supprime les validations lors de la suppression de branches (la plupart des référentiels nus le font et la plupart des référentiels acceptant les envois sont nus).

201
Rémi Becheras