Nous aimerions appliquer une nouvelle politique à nos projets, à savoir que la branche principale soit maintenant appelée branche des versions, afin de préciser la manière dont elle doit être utilisée. Naturellement, nous aurons aussi à développer et à libérer les branches candidates.
Je comprends que je peux renommer la branche principale localement en utilisant simplement les éléments suivants:
git branch -m master release
Cependant, ce n'est que localement. Même si je transmets ceci à la télécommande, le HEAD pointe toujours sur la branche maître distante. Je veux supprimer complètement la branche maître et créer la branche locale par défaut lors du clonage initial, soyez Libération.
Comment puis-je atteindre cet objectif?
EDIT: Il semble que puisque l’origine est sur un serveur gitorious, je reçois des erreurs lors de la suppression de la branche master. J'essaie de voir maintenant s'il est possible de changer cela pour que la branche par défaut soit "release".
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
Commander votre branche principale
git checkout master
Créez votre branche de version et passez à celle-ci
git branch release
git checkout release
Poussez cela 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ître locale
git branch -d master
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.
Depuis avoir essayé de supprimer le remote master
d'un client n'est en effet pas autorisé et je suppose que l'interdiction de denyDeleteCurrent
a du sens, je ne voudrais pas modifier ce paramètre.
Cependant, j’ai trouvé que le moyen le plus simple de renommer votre maître si vous avez un accès en ligne de commande au serveur distant doit être exécuté. la commande renommer directement sur remote.
Cela a fonctionné pour moi:
git branch -m master release
Maintenant, le référentiel distant utilise release
comme branche par défaut et n'importe quel git clone
sur ce référentiel à partir de n'importe quel client extraira la branche de publication par défaut.
Très utile également après avoir configuré un référentiel nu pour le configurer selon vos besoins.
Comme indiqué précédemment par d'autres, le problème ici est Gitorious, ce 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:
[receive]
denyDeleteCurrent = warn
à la config.
Une option plus simple consiste simplement à modifier la branche par défaut. Accédez à votre référentiel dans l'interface Web gitorious, appuyez sur "Modifier le référentiel" et définissez l'option "En-tête. Modifiez la référence symbolique le HEAD dans le référentiel git pointe vers:". Ensuite, vous avez terminé. vous pouvez supprimer la branche principale.
Idéalement, vous souhaitez configurer le suivi, procédez comme suit:
git Push Origin HEAD:release
git checkout --track Origin/release
Maintenant, vous voulez supprimer les autres?
git branch -d master
git Push Origin :master
Simple!