Nous aimerions appliquer une nouvelle politique pour nos projets selon laquelle la branche principale s'appellera désormais la branche de version pour garantir que la manière dont la branche doit être utilisée est plus claire. Naturellement, nous développerons et publierons également des branches candidates.
Je comprends que je peux renommer la branche principale localement en utilisant simplement ce qui suit:
git branch -m master release
Cependant, ce n'est que localement. Même si je pousse ceci vers la télécommande, la HEAD pointe toujours vers la branche principale distante. Je veux me débarrasser complètement de la branche principale et faire en sorte que la branche locale par défaut lors du clonage initial soit libérée.
Comment puis-je atteindre cet objectif?
Il semble que puisque l'origine se trouve sur un serveur Gitorious , j'obtiens des erreurs lors de la suppression de la branche principale. J'essaie de voir maintenant s'il est possible de changer cela afin que la branche par défaut soit «release».
la source
git branch
prend désormais en charge un--move
drapeau git-scm.com/docs/git-branch#Documentation/git-branch.txt---moveRéponses:
Veuillez noter que si vous utilisez GitHub, vous devrez d'abord modifier votre branche "par défaut" sur GitHub après l'étape 3:
Dans votre référentiel sur github.com, allez dans Paramètres → Branches → Branche par défaut . Modifiez-le en version libérée , puis effectuez le reste des étapes.
la source
! [remote rejected] branch (deletion of the current branch prohibited)
se produira avec Bitbucket. Basculez le «référentiel principal» dans l'écran des paramètres (sous l'icône d'engrenage).Découvrez votre branche principale
Créez votre branche de version et basculez-y:
Poussez ça sur le serveur
Supprimer la référence de branche principale sur le serveur
Supprimer la branche principale locale
la source
Remarque: Cette réponse est destinée aux serveurs Git auto-hébergés sur lesquels vous avez un accès en ligne de commande.
Étant donné que tenter de supprimer le
remote master
d'un client n'est en effet pas autorisé et que je suppose que l'interdiction a dudenyDeleteCurrent
sens, je ne voudrais pas changer ce paramètre.Cependant, j'ai trouvé que le moyen le plus simple de renommer votre maître ssi vous avez un accès en ligne de commande au serveur distant est d'exécuter la commande renommer directement à distance.
Cela a fonctionné pour moi:
git branch -m master release
Désormais, le référentiel distant utilise
release
comme branche par défaut et tout utilisateurgit clone
de ce référentiel depuis n'importe quel client va extraire la branche de publication par défaut.Il est également très utile après avoir configuré un référentiel nu pour le configurer selon vos besoins.
la source
Comme indiqué précédemment par d'autres, 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 consiste à se connecter au serveur Gitorious (avec ssh), à trouver le référentiel Git sur le serveur de fichiers et à ajouter:
à la configuration.
Une option plus simple consiste simplement à changer la branche par défaut. Accédez à votre référentiel dans l'interface Web de Gitorious, appuyez sur "Modifier le référentiel", et définissez "Head Change la référence symbolique vers laquelle pointe la HEAD dans le référentiel Git:". Après avoir fait cela, vous pouvez supprimer la branche principale.
la source
Si vous rencontrez ce problème avec GitHub , suivez les étapes jusqu'à la suppression de la branche à distance. Il ne vous laissera pas faire cela. Puis connectez-vous à l'interface Web et sur le référentiel, allez dans Paramètres → Branches → Branche par défaut . Remplacez-le par la nouvelle branche et effectuez le reste des étapes.
la source
Idéalement, vous souhaitez configurer le suivi, procédez comme suit:
Maintenant, voulez-vous supprimer les autres?
Facile!
la source
Puisque vous avez fini de renommer les branches, pour régler la tête sur
release
pour la télécommandeEnsuite, pour supprimer la
master
branche à distance, vous devrez être l'administrateur, au moins sur GitHub. Veuillez consulter cet article pour plus d'informations.la source