web-dev-qa-db-fra.com

Comment renommer ma branche "master" git en "release"?

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".

76
Kyle Hayes
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
97
Adam Dymitruk

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
9
Jeff Ferland

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:

  1. Se connecter 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 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.

2

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.

2

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!

1
gahooa