got 'fatal: branch 'master' не существует' в git
используя git
какое-то время он очень мощный и красивый..
но также немного запутался об этом:
он должен под мастером филиала после того, как я init git repo, не так ли?
но git branch -a
, у меня ничего нет.
и я получил fatal: branch 'master' does not exist
когда я пытаюсь установить вверх по моей ветке.
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 git@gitee.com: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
3 ответов
TL; DR
вы можете git checkout master
на данный момент.
более длинное описание (но все еще не так долго)
Вы делаете это трудным путем.
в будущем, вместо:
mkdir repo
cd repo
git init
git remote add origin <url>
git fetch origin
git checkout master
вы можете просто запустить:
git clone <url> repo
так как шесть команд выше в значительной степени что git clone
делает.
после первых трех шагов-создание новой, совершенно пустой репозиторий, у вас есть репозиторий, который находится в своеобразное состояние: у него нет фиксаций, поэтому у него нет ветвей. В то же время, это тут есть текущая филиала, которая составляет master
.
другими словами, текущая ветвь-это ветвь, которая не существует.
это состояние необычно, но нормально. Если вы бежите git checkout --orphan newbranch
, вы помещаете свой репозиторий Git в то же состояние:1 на ветке, которая не существует. Ветвь создается после того, как есть хэш фиксации хранить под названием филиала.
всякий раз, когда вы запустите git checkout <name>
и нет ветви с именем <name>
, Git проверяет, есть ли ровно дистанционное отслеживание ветви, такие как origin/<name>
. Если это так, Git создает new филиала это указывает на то же самое, что и origin/<name>
и это origin/<name>
как его вверх по течению.
С этого последнего шага -git checkout master
, когда master
на самом деле не существует-это последний шаг git clone
, git clone
также будет создана новая ветка master
это отслеживает ветку дистанционного отслеживания origin/master
.
1обратите внимание, что вы сохраняете текущее содержимое индекса / промежуточной области. Это верно и для нового пустого репозитория, но поскольку это новый пустой репозиторий, индексная / промежуточная область также пуста, и "сохранение пустого набора" не очень похоже на удержание.
после запуска git init
на master
вы видите, не полностью создан. Он не существует, поскольку он еще не указал на какое-либо обязательство. Я как-то читал, что он был спроектирован. Но я думаю, что это загадочный Жук. Если вы бежите git branch
, он ничего не возвращает.
после запуска git fetch
, а после git checkout master
делает работу. Это эквивалентно:
git branch master origin/master
git checkout master
git branch -u origin/master