Git: не удается перейти к удаленной основной ветке

#git

#git

Вопрос:

Я создал свой проект локально и инициализировал .git с помощью ветки «master», созданной по умолчанию. История:

 > git init
> git add --all
> git commit -m "initial set up"
> git remote add origin https://github.com/me/APP-REPO.git
> git remote -v
> git push origin main
error: src refspec main does not match any
error: failed to push some refs to 
> git branch
* master
> git push -u origin main
error: src refspec main does not match any
 

Но репозиторий, созданный на Github, имеет ветку по умолчанию «main». Как можно перейти непосредственно к «основному»? Почему я не вижу эту ветку локально?

Заранее спасибо!

Комментарии:

1. В вашем локальном репозитории у вас нет ветки с именем «main», только «master», насколько я понял.

2. Чтобы упростить задачу, вы могли бы начать с git init -b main

3. Поскольку кажется, что вы не выполняли никакой работы в своем локальном репозитории, было бы проще вместо создания нового пустого репозитория и связывания его с существующим просто клонировать существующий.

4. Или, поскольку у вас уже есть локальный репозиторий, просто переименуйте локальную ветку с «master» на «main»: git branch -m master main .

5. @mkrieger1 спасибо! попытался git branch -m master main , а затем нажал, но получил ошибку: «! [отклонено] ошибка main -> main (сначала выборка): не удалось отправить некоторые ссылки в ‘ github.com/me/todo-app.git ‘подсказка: обновления были отклонены, потому что удаленный сервер содержит работу, которую вы выполняете подсказка: локально нет. Обычно это вызвано тем, что другой репозиторий отправляет подсказку: на ту же ссылку. Возможно, вы захотите сначала интегрировать подсказку об удаленных изменениях: (например, «git pull …»), прежде чем нажимать снова.». Должен ли я извлекать из main ?

Ответ №1:

Ваша первая ошибка произошла здесь:

 > git push origin main
error: src refspec main does not match any
error: failed to push some refs to
 

потому что вы еще не изменили имя своей ветки master на main with git branch -M main .

Итак, запуск git push -u origin master сработал бы, но он создал бы имя ветки, вызываемое master в удаленном репозитории. Но тогда все может немного раздражать, если вы хотите, чтобы ваш мастер был по умолчанию, поэтому git branch -M main сначала, если возможно, вам следует.

И, читая раздел комментариев, вы, похоже, изменили имя своей ветки master на main и столкнулись с другой ошибкой при запуске git push -u origin main .

Мне кажется, что вы инициализировали удаленный репозиторий с помощью README или какого-то другого материала в нем. Итак, обычно вы можете git pull --rebase <your-remote-repo-url> извлечь удаленное изменение и перенести его в свой локальный репозиторий.

После всего этого вы должны быть в состоянии git push -u origin main .

Но если вы начинаете все сначала, вы можете просто запустить новое репозиторий на GitHub без каких-либо начальных файлов, скопируйте URL, git branch -M main , git remote add origin <remote-url> , и git push -u origin main .