Dans Git, une branche n'est qu'une liste ordonnée de commits (aka: checkins). Quelque chose qui peut être un peu déroutant pour les nouveaux utilisateurs, c'est que les succursales n'ont pas besoin d'avoir un nom (bien que dans la plupart des cas, vous en vouliez un); et il n'y a rien de particulièrement spécial dans une branche particulière (la master
branche est juste celle par défaut qui est créée pour vous lorsque vous initialisez un référentiel).
Vous le savez probablement déjà, mais Git est différent de certains autres systèmes de contrôle de version comme le populaire "Subversion", car chaque "copie de travail" (en langage Subversion) est un référentiel qui lui est propre ... en fait, il n'y a rien de particulièrement spécial sur toute copie particulière; sauf qu'une copie a été généralement acceptée comme étant la copie "canonique" utilisée pour stocker le produit final.
Donc, revenons à votre question ... le référentiel "canonique" que vous avez cloné lorsque vous avez commencé votre copie locale contenait une branche "master" par défaut; et il est coincé. Maintenant, si vous aviez accès à l'ordinateur qui contient le référentiel maître, vous pouvez vous connecter et exécuter:
git branch -d master
Cependant, si vous ne pouvez pas le faire, vous pouvez toujours le faire à partir de votre ordinateur local. La git branch
commande a une -r
option qui affecte le référentiel distant. En d'autres termes, l'exécution de la commande suivante devrait fonctionner:
git branch -d -r master
Notez que dans ces deux cas; Je suppose que cela master
a été complètement fusionné dans l'historique de développement sur lequel se trouve actuellement votre copie locale. Si vous ne l'avez jamais utilisé master
auparavant (c.-à-d. Que vous ne vous êtes enregistré que sur development
ou production
), vous n'avez rien à craindre. Cependant, si vous (ou quelqu'un d'autre) avez vérifié les choses master
, vous pourriez avoir un problème. Vous pouvez forcer une suppression en changeant la -d
pour -D
les commandes ci - dessus; mais je recommande fortement de vérifier pour voir ce qui est à l' master
avance! Si vous n'avez pas accès à l'ordinateur distant, vous ne pourrez probablement pas le récupérer!
Au fait; si vous (ou quelqu'un d'autre) êtes nouveau sur Git, je vous recommande fortement de lire Git de la base à la hausse par John Wiegley . Même si j'avais utilisé Git un peu par moi-même avant de trouver cet article, je n'ai pas vraiment compris comment cela fonctionnait jusqu'à ce que je le lise. C'est assez utile!
git branch -d -r master
ne supprime plus la branche distante - il supprime la connaissance de votre copie locale de la branche distante. La prochaine fois que vousgit fetch
, la succursale sera de retour! Au lieu de cela, vous aurez envie de courirgit push origin :master
. Essentiellement, ce que vous faites ici est de pousser une branche nulle (le nom de la branche vide à gauche de:
) au-dessus de la branche distante (le nom de la branche à droite de la:
), la supprimant efficacement.