web-dev-qa-db-fra.com

git 'fatal: la branche' maître 'n'existe pas' dans git

en utilisant git pendant un moment, c'est très puissant et beau .. 

mais aussi eu un peu confus à ce sujet: 

il faut que sous maître de branche après avoir initié un dépôt Git, n'est-ce pas? 

mais git branch -a, je n'ai rien man.
et j’ai eu fatal: branch 'master' does not exist lorsque j’essaie d’installer en amont ma branche. 

users@debian MINGW64 ~/Desktop/taste
$ git init
Initialized empty Git repository in C:/Users/users/Desktop/taste/.git/

users@debian MINGW64 ~/Desktop/taste (master)
$ git remote add Origin [email protected]:greedev/Test.git

users@debian MINGW64 ~/Desktop/taste (master)
$ git branch -u Origin/master
fatal: branch 'master' does not exist

users@debian MINGW64 ~/Desktop/taste (master)
$ git branch -a

users@debian MINGW64 ~/Desktop/taste (master)
$ git fetch
The authenticity of Host 'gitee.com (120.55.226.24)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitee.com,120.55.226.24' (ECDSA) to the list of know                n hosts.
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 7 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (7/7), done.
From gitee.com:greedev/Test
* [new branch]      master     -> Origin/master

users@debian MINGW64 ~/Desktop/taste (master)
$ git branch -a
  remotes/Origin/master

users@debian MINGW64 ~/Desktop/taste (master)
$ git branch -u Origin/master
fatal: branch 'master' does not exist

enter image description here

11
Zander Wong

TL; DR

Vous pouvez git checkout master à ce stade.

Description plus longue (mais pas encore si longue)

Vous faites cela à la dure.

Dans le futur, au lieu de:

mkdir repo
cd repo
git init
git remote add Origin <url>
git fetch Origin
git checkout master

vous pouvez simplement courir:

git clone <url> repo

puisque les six commandes ci-dessus sont à peu près ce que git clone fait.

Après les trois premières étapes (création d'un nouveau référentiel totalement vide), vous obtenez un référentiel dans un état particulier: il n'a pas de validation, il n'a donc pas de branche. En même temps, il a a un branche actuelle, qui est master.

En d'autres termes, la branche actuelle est une branche qui n'existe pas.

Cet état est inhabituel, mais normal. Si vous exécutez git checkout --Orphan newbranch, vous mettez votre référentiel Git dans le même état:1 sur une branche qui n'existe pas. La branche est créée dès qu’un hachage de validation est à stocker sous le nom de la branche.

Chaque fois que vous exécutez git checkout <name> et qu'il n'y a pas de branche nommée <name>, Git vérifie s'il existe une exactement une branche de suivi à distance telle que Origin/<name>. Si tel est le cas, Git crée une nouvelle branche nommée <name> qui pointe vers le même commit que Origin/<name> et qui a Origin/<name> en amont.

Étant donné que cette dernière étape, git checkout master lorsque master n'existe pas encore, est la dernière étape de git clone, git clone créera également une nouvelle branche master qui suit le Origin/master de la branche de suivi à distance.


1Notez que vous conservez le contenu actuel de la zone d'index/staging. Cela vaut également pour le nouveau référentiel vide, mais comme il s'agit d'un nouveau référentiel vide, la zone d'index/stockage intermédiaire est également vide et "conserver l'ensemble vide" ne ressemble pas beaucoup à la rétention.

20
torek

Après avoir exécuté git init, la master que vous voyez n'est pas complètement créée. Cela n'existe pas car il n'a pas encore signalé de commit. J'ai lu une fois que c'était conçu. Mais je pense que c'est un bug déroutant. Si vous exécutez git branch, il ne retourne rien.

Après avoir exécuté git fetch, un git checkout master suivant effectue le travail. Cela équivaut à:

git branch master Origin/master
git checkout master
git branch -u Origin/master
2
ElpieKay

Vous êtes probablement à la recherche de git checkout master et de quelques tutoriels.

0
Pbd