36 votes

Renommer une branche git distante

J'ai 2 branches Git: maître et expérimental.

Expérimental devenu bon, je veux en faire le maître. Je pensais que je renommerais pour mélanger les choses, mais voici ce que j'ai obtenu:

 nutebook:Stuff nathan$ git remote rename master old
error: Could not rename config section 'remote.master' to 'remote.old'
 

J'utilise GitHub et Git-Tower.

56voto

djhaskin987 Points 2620

Ce qui suit est un guide pour renommer votre branche master. Il fonctionnera tout aussi facilement renommer votre branche expérimentale.

Voici comment j'ai fait le changement de nom.

Tout d'abord, dans votre arbre de travail, localement renommer maître à quelque chose d'autre.

git branch -m master old-dev

Renommage d'une direction, de travail alors que vous êtes sur la branche, de sorte il n'est pas nécessaire pour l'extraction de quelque chose d'autre.

Ensuite, localement renommer la branche de maintenance (2.63-branche) à maître:

git branch -m 2.63-branch master

Maintenant, le temps de jouer avec la télécommande. Juste au cas où vous vis, vous pourriez assurez-vous d'avoir une sauvegarde à jour. Tout d'abord, supprimer les à distance du master:

git push origin :master

Et maintenant, donnez-le à distance de votre nouveau maître:

git push origin master:refs/heads/master

Mise à jour: Lors de la création d'une nouvelle branche, les refs/heads/ préfixe est nécessaires sur le côté éloigné. Si la branche existe déjà (en tant que maître n' ci-dessus), seul le nom de la branche est requis sur l'hôte distant.

... et votre maintenant-renommage de l'ancien maître:

git push origin old-dev:refs/heads/old-dev

Enfin, supprimer l'ancien nom de votre branche de maintenance pour prévenir confusion:

git push origin :2.63-branch

Les Clients auront désormais la "nouvelle" branche master quand ils tirent.

voir ce site.

4voto

gracchus Points 813

Je pense que le moyen le plus simple est de vérifier la branche expérimentale, de supprimer la branche maître distante, puis de pousser la branche expérimentale locale en tant que nouvelle branche principale distante.

 // delete the remote master branch by pushing null
// (the space in front of the semicolon) in this branch
git push origin :master
// push local experimental to remote master
git push origin experimental:master
 

1voto

knittl Points 64110

master est une branche, pas une télécommande comme origin est. si vous voulez avoir votre travail expérimental dans votre branche master, il suffit de le fusionner dans:

 git checkout master
git merge experimental
 

0voto

Ryan Stewart Points 46960

Vous avez essayé de renommer un dépôt distant de "maître" en "ancien". Pour renommer une branche sur un autre dépôt, supprimez-la simplement avec

 git push <remote> :<branch name>
 

puis poussez comme autre chose.

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