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
Vous pouvez git checkout master
à ce stade.
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.
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
Vous êtes probablement à la recherche de git checkout master
et de quelques tutoriels.