Comment renommer un nom de branche git distant

J'ai 4 branches se situant comme maître -> origine/regacy, FeatureA -> origine/FeatureA.

Comme vous pouvez le voir ci-dessus, j'ai tapé un mauvais nom.

Je veux donc renommer un nom de branche distant (origin/regacy => origin/legacy ou origin/master)

J'essaie de commander ci-dessous.

Git remote renommer regacy héritage

Mais la console Git a réessayé l'Erreur msg Pour moi.

Erreur: Impossible de renommer la section de configuration ' distante.regacy ' à distance de.héritage "

Comment puis-je résoudre ce problème?

150
demandé sur JayD 2015-06-02 10:36:30

4 réponses

Vous ne pouvez pas renommer une branche distante.
Vous devez le supprimer, puis le pousser à nouveau.

Renommer une branche

# rename the local branch to the new name
git branch -m <old_name> <new_name> 

# delete the old branch on remote - where <remote> is eg. origin
git push <remote> --delete old_name

# push the new branch to remote         
git push <remote> new_name

entrez la description de l'image ici


Remarque Importante :

Lorsque vous utilisez le git branch -m (move), git met également à jour votre branche de suivi avec le nouveau nom.

git remote rename regacy legacy

git remote rename essaie de mettre à jour votre section distante dans votre fichier de configuration. Il renommera la télécommande avec le nom donné au nouveau nom, mais dans votre cas, il n'en a pas trouvé, donc le renommage a échoué.

Mais, il ne fera pas ce que vous pensez, il va renommer votre local config nom distant et pas la branche distante. 


Note Git serveurs peut vous permettre de renommer git branch en utilisant l'interface web ou de programmes externes (comme Sourctree etc), mais vous devez garder à l'esprit que dans git, tout le travail est fait localement, il est donc recommandé d'utiliser les commandes ci-dessus pour le travail.

311
répondu CodeWizard 2018-04-24 07:23:07

Si vous avez incorrectement nommé une branche et l'avez envoyée au référentiel distant, procédez comme suit pour renommer cette branche ( en fonction de cet article):

  1. Renommez votre branche locale:

    • Si vous êtes sur la branche que vous souhaitez renommer:
      git branch -m new-name

    • Si vous êtes sur une autre branche:
      git branch -m old-name new-name

  2. Supprimer la old-name branche distante et pousser la new-name locales branche:
    git push origin :old-name new-name

  3. Réinitialiser la branche amont pour la branche locale new-name :
    Passer à la direction générale, puis:
    git push origin -u new-name

37
répondu ZILONG PAN 2017-11-09 08:58:23

Il semble qu'il y ait un moyen direct:

Si vous voulez vraiment simplement renommer les branches à distance (sans renommer les branches locales en même temps), vous pouvez le faire avec une seule commande comme

git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>

Https://stackoverflow.com/a/21302474/2586761

Voir la réponse originale pour plus de détails

19
répondu ptim 2017-02-11 07:43:21

Il N'y a pas de méthode directe,

  1. Renommer La Branche Locale ,

    Ma branche courante est maître

    git branch -m master_renamed #master_renamed est le nouveau nom de maître

  2. Supprimer la Branche distante,

    git push origin --delete master_renamed #l'origine est remote_name

  3. Poussez la branche renommée dans remote,

    git push origin master_renamed

C'est tout...

1
répondu Mohideen ibn Mohammed 2018-05-11 13:41:22