TL;DR
"Renommer" une branche distante est en fait un processus en 2 étapes (pas nécessairement ordonnées) :
- suppression de l'ancienne branche distante (
git push [space]:<old_name>
comme ksrb a expliqué ) ;
- pousser dans une nouvelle branche distante (différence entre quelques commandes de réponses ci-dessous).
Suppression de
J'utilise TortoiseGit et lorsque j'ai essayé de supprimer la branche par la ligne de commande, j'ai obtenu ceci :
$ git push origin :in
Veuillez vous assurer que vous avez les bons droits d'accès et que le référentiel existe.
Cela était probablement dû à Concours de beauté ne pas avoir le clé privée chargé (qui TortoiseGit se charge automatiquement dans Concours de beauté ). De plus, j'ai remarqué que TortoiseGit Les commandes n'ont pas le origin
ref en eux (par exemple git.exe push --progress "my_project" interesting_local:interesting
).
J'utilise également Bitbucket et, comme d'autres gestionnaires git en ligne du genre (GitHub, GitLab), j'ai pu supprimer la branche distante directement via leur interface (page des branches) :
Cependant, en TortoiseGit vous pouvez également supprimer les branches distantes par le biais de Parcourir les références :
En cliquant avec le bouton droit de la souris sur une branche distante (liste des branches distantes), la fonction Supprimer la branche distante s'affiche :
Pousser
Après avoir supprimé l'ancienne branche distante, j'ai poussé directement dans une nouvelle branche distante via TortoiseGit en tapant simplement le nouveau nom dans le A distance : du champ de la Pousser et cette branche a été automatiquement créée et visible dans la fenêtre Bitbucket .
Cependant, si vous préférez toujours le faire manuellement, un point qui n'a pas encore été mentionné dans ce fil de discussion est que -u
= --set-upstream
.
De git push
docs , -u
est juste un alias de --set-upstream
Ainsi, les commandes dans les réponses de Sylvain ( -set-upstream new-branch
) y Shashank ( -u origin new_branch
) sont équivalentes, puisque la réf. à distance La valeur par défaut est origin
si aucune autre réf n'a été définie auparavant :
En fin de compte, je n'ai pas tapé manuellement ou utilisé l'une des commandes suggérées par les autres réponses ici, donc peut-être que cela pourrait être utile à d'autres personnes dans une situation similaire.
50 votes
La question "dupliquée" liée demande de renommer une branche "à la fois localement et à distance". Cette question, cependant, demande seulement comment renommer les branches à distance, ce qui permet une simplification. Voici ce que je fais pour renommer une branche sur le serveur sans avoir besoin de vérifier et / ou de créer une branche locale :
git push origin origin/old_name:refs/heads/new_name && git push origin :old_name
.1 votes
@sschuberth : vous pouvez donner les deux commandes en une seule fois. Et cela devrait vraiment être la réponse à cette question.
2 votes
@JoachimBreitner Vous avez raison, j'ai déjà procédé à cette optimisation en ce script de la mienne.
1 votes
@sschuberth, vous devriez poster votre commentaire en tant que réponse, car je le préfère aux autres ci-dessous.
0 votes
Terminé .
0 votes
Duplicata possible de Comment renommer une branche locale de Git ?
0 votes
J'ai essayé toutes les méthodes ci-dessous. Essentiellement, vous ne pouvez pas renommer la branche distante. Toutes les méthodes ci-dessous suppriment l'ancienne branche distante et en créent une nouvelle. Si vous le faites dans gitlab, l'ancienne branche/MR sera fermée et vous devrez créer une nouvelle MR.
0 votes
En rapport : Renommer la branche master pour les dépôts Git locaux et distants
0 votes
Voir aussi : Comment renommer à la fois le nom d'une branche locale et d'une branche distante de Git ?