118 votes

Pourquoi ma "branche git" n'a-t-elle pas de maître?

Je suis un git débutant et je lis à propos d'un "maître" de la branche. Est "maître" juste un nom conventionnel que les gens utilisés ou a-t-elle une signification particulière, comme HEAD?

Quand je le fais, git branch sur le clone que j'ai, je ne vois que 1 seule branche - celle que je suis. Pas de "maître". Si je tape git checkout master (que je vois dans beaucoup de tutoriels ou de guides), j'obtiens

error: pathspec 'master' did not match any file(s) known to git.

Je suis juste confus quant à pourquoi mon clone n'ont pas d' master que tout le monde semble dire qu'il existe toujours.

92voto

Amber Points 159296

La plupart des dépôts Git utiliser master comme le principal (et par défaut) - si vous initialisez un nouveau repo Git via git init, il sera master vérifié par défaut.

Toutefois, si vous clonez un dépôt, la branche par défaut que vous avez est ce que la télécommande HEAD de points à (HEAD est en fait une symbolique ref qui pointe vers un nom de branche). Donc, si le référentiel cloné avait un HEAD a souligné, disons, foo, alors votre clone sera juste un foo de la branche.

La télécommande vous cloné à partir de pourrait encore avoir un master de la branche (vous pourriez vérifier avec git ls-remote origin master), mais tu n'aurais pas créé une version locale de la branche par défaut, parce qu' git clone seulement des contrôles de la télécommande HEAD.

89voto

Bunyk Points 924

Pour extraire une branche qui n'existe pas localement mais qui se trouve dans le référentiel distant, vous pouvez utiliser cette commande:

 git checkout -t -b master origin/master
 

50voto

Matt Curtis Points 12454

master n'est que le nom d'une branche, il n'y a rien de magique à cela sauf qu'il est créé par défaut lorsqu'un nouveau référentiel est créé.

Vous pouvez le rajouter avec git checkout -b master .

24voto

eacousineau Points 945

En fait, j'ai eu le même problème avec un tout nouveau référentiel. J'avais même essayé d'en créer un avec git checkout -b master , mais cela ne créerait pas la branche. Je me suis alors rendu compte que si je faisais quelques modifications et que je les engageais, git créait ma branche principale.

13voto

user2196340 Points 41

s'il s'agit d'un nouveau rapport que vous avez cloné, il peut rester vide, auquel cas:

git push -u origin master

devrait probablement résoudre ce problème.

(ne l’a fait dans mon cas. je ne suis pas sûr qu’il s’agisse du même problème, j’ai pensé que je devrais publier ce cas juste. pourrait aider les autres.)

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