133 votes

Comment renommer ma branche "master" de Git en "release" ?

Nous aimerions appliquer une nouvelle politique pour nos projets, à savoir que la branche maîtresse soit désormais appelée branche de publication, afin de rendre plus claire la manière dont cette branche doit être utilisée. Naturellement, nous aurons aussi des branches "development" et "release candidate".

Je comprends que je peux renommer la branche master localement en utilisant simplement ce qui suit :

git branch -m master release

Cependant, cela n'est que local. Même si je le pousse vers la branche distante, le HEAD pointe toujours vers la branche maîtresse distante. Je veux me débarrasser complètement de la branche maître et faire en sorte que la branche locale par défaut, lors du clonage initial, soit la release.

Comment puis-je y parvenir ?

Il semble que puisque l'origine est sur un Gitorious j'obtiens des erreurs en supprimant la branche master. J'essaie maintenant de voir s'il est possible de changer cela pour que la branche par défaut soit 'release'.

157voto

Adam Dymitruk Points 34999
git checkout -b release master    # Create and switch to the release branch
git push -u origin release        # Push the release branch to the remote and track it
git branch -d master              # Delete local master
git push --delete origin master   # Delete remote master
git remote prune origin           # Delete the remote tracking branch

Veuillez noter que si vous utilisez GitHub vous devrez d'abord changer votre branche "par défaut" sur GitHub après l'étape 3 :

Dans votre dépôt sur github.com, allez à ParamètresBranchesBranche par défaut . Changez-le en libérer et ensuite faire le reste des étapes.

13voto

Jeff Ferland Points 9485

Vérifiez votre branche principale

git checkout master

Créez votre branche release et basculez dessus :

git branch release
git checkout release

Poussez-le vers le serveur

git push origin release

Supprimer la référence de la branche principale sur le serveur

git push origin :master

Supprimer la branche maîtresse locale

git branch -d master

6voto

Note : Cette réponse est destinée aux serveurs Git auto-hébergés où vous avez un accès en ligne de commande.

Puisque vous essayez de supprimer le remote master d'un client n'est en effet pas autorisé et je suppose que le fait d'interdire denyDeleteCurrent est logique, je ne voudrais pas changer ce paramètre.

Cependant, j'ai trouvé que le le moyen le plus simple de renommer votre master si vous avez un accès en ligne de commande au serveur distant. est d'exécuter la commande de renommage directement sur la télécommande.

Cela a marché pour moi :

  1. Connexion via SSH au serveur git distant
  2. Allez dans le dossier xxx.git de votre projet.
  3. courir : git branch -m master release

Maintenant, le référentiel distant utilise release comme branche par défaut et toute git clone sur ce dépôt depuis n'importe quel client va extraire la branche release par défaut.

Il est également très utile, après la mise en place d'un dépôt nu, de le configurer selon vos besoins.

3voto

Comme d'autres l'ont déjà dit, le problème ici est Gitorious, qui ne vous permet pas de supprimer la branche HEAD par défaut. Vous avez deux options pour contourner ce problème. La première est de se connecter au serveur Gitorious (avec ssh), de trouver le dépôt Git sur le serveur de fichiers et d'ajouter :

[receive]
        denyDeleteCurrent = warn

à la configuration.

Une option plus simple consiste à changer la branche par défaut. Allez à votre dépôt dans l'interface web de Gitorious, appuyez sur "Editer le dépôt", et mettez "Head Change the symbolic ref the HEAD in the Git repository points to :". Après avoir fait cela, vous pouvez supprimer la branche master.

2voto

Gru Points 187

Si vous rencontrez ce problème avec GitHub faites les étapes jusqu'à la suppression de la branche à distance. Il ne vous laissera pas faire cela. Ensuite, connectez-vous à l'interface Web et sur le référentiel, allez à ParamètresBranchesBranche par défaut . Changez-la pour la nouvelle branche et faites le reste des étapes.

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