Pourquoi ma “twig git” n’a-t-elle pas de maître?

Je suis un débutant et je continue à lire sur une twig “maître”. Est-ce que “master” est juste un nom conventionnel que les gens ont utilisé ou a-t-il une signification spéciale comme HEAD ?

Lorsque je fais du git branch sur le clone que je possède, je ne vois qu’une seule twig – celle sur laquelle je suis. Pas de “maître” du tout. Si je tape git checkout master (comme je le vois dans beaucoup de tutoriels ou de guides), je reçois

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

Je suis simplement confus quant à la raison pour laquelle mon clone n’a pas de master que tout le monde semble impliquer qu’il existe toujours.

La plupart des repositorys Git utilisent master comme twig principale (et par défaut) – si vous initialisez un nouveau repository Git via git init , le master sera extrait par défaut.

Cependant, si vous clonez un référentiel, la twig par défaut que vous avez est celle que la tête de la télécommande indique ( HEAD est en fait une référence symbolique qui pointe vers un nom de twig). Donc, si le repository que vous avez cloné avait un HEAD pointé, disons, foo , alors votre clone aura juste une twig foo .

La télécommande à partir de laquelle vous avez cloné peut toujours avoir une twig principale (vous pouvez vérifier avec git ls-remote origin master ), mais vous n’auriez pas créé une version locale de cette twig par défaut.

Pour extraire une twig qui n’existe pas localement mais qui se trouve dans le repo distant, vous pouvez utiliser cette commande:

 git checkout -t -b master origin/master 

master est juste le nom d’une twig, il n’y a rien de magique à ce sujet, sauf qu’il est créé par défaut lorsqu’un nouveau référentiel est créé.

Vous pouvez l’append avec git checkout -b master .

J’ai eu le même problème avec un repository complètement nouveau. J’avais même essayé d’en créer un avec git checkout -b master , mais cela ne créerait pas la twig. Je me suis alors rendu compte que si je faisais des changements et que je les avais engagés, git a créé ma twig principale.

Dans mon cas, il y avait une twig de développement mais pas de twig principale. Par conséquent, j’ai cloné le référentiel pointant le HEAD nouvellement créé vers la twig existante. Ensuite, j’ai créé la twig principale manquante et j’ai mis à jour HEAD pour qu’il pointe vers la nouvelle twig principale.

 git clone git:repositoryname --branch otherbranch git checkout -b master git update-ref HEAD master git push --set-upstream origin master 

s’il s’agit d’un nouveau repo que vous avez cloné, il peut toujours être vide, auquel cas:

git push -u origin master

devrait probablement régler ce problème.

(est-ce que dans mon cas, je ne suis pas sûr que ce soit le même problème, j’ai pensé que je devais poster ce document au cas où. pourrait aider les autres.)

Je suis tombé sur le même problème et j’ai compris le problème. Lorsque vous initialisez un référentiel, il n’y a aucune twig. Lorsque vous lancez un projet, lancez git add . puis git commit et la twig master sera créée.

Sans rien vérifier, vous n’avez pas de twig principale. Dans ce cas, vous devez suivre les étapes suggérées par d’autres personnes.

Il semble qu’il y ait au moins un commit local sur la twig master à faire:

 git push -u origin master 

Donc, si vous avez fait git init . et puis git remote add origin ... , vous devez toujours faire:

 git add ... git commit -m "..."