#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
.