Ошибка источника оригинала в новом хранилище


181

Я только начал использовать Git с GitHub. Я следовал их инструкциям и столкнулся с ошибками на последнем шаге. Я проверяю существующий каталог, который в настоящее время не контролируется исходным кодом (проект около недели назад). Кроме этого, мой сценарий использования должен быть довольно привычным.

Вот что происходит:

$ git push origin master
error: src refspec master does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git'

Инструкция Github:

Global setup:

  Download and install Git
  git config --global user.name "Your Name"
  git config --global user.email {username}@gmail.com

Next steps:

  mkdir projectname
  cd projectname
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin git@github.com:{username}/{projectname}.git
  git push origin master

4
Похоже, что первоначальный коммит не работал по любой причине. Журнал Git помог мне увидеть, работает ли коммит. Мне удалось повторить попытку на следующий день. Спасибо!
sutee

1
Если вы не добавляете файлы, не фиксируете и не запускаете git init, у вас всегда возникают такие проблемы. Поэтому всегда бегите git statusпосмотреть, все ли в порядке.
raduken

аналогичная ошибка при создании ветки для вновь созданного git-репозитория из существующего кода. Устранена ошибка путем клонирования репозитория git.
user553620


Возможное дублирование ошибки при «git push» на github .

Ответы:


137

Сообщение об ошибке приводит к выводу, что у вас нет masterветки в вашем локальном хранилище. Либо добавьте свою основную ветку разработки ( git push origin my-local-master:masterкоторая переименует ее в mastergithub), либо сделайте коммит первым. Вы не можете выдвинуть полностью пустой репозиторий.


10
У меня была проблема с «пустым хранилищем», поскольку в соответствующем руководстве, на которое ссылается GitHub ( beans.seartipy.com/2008/12/09/… ), не упоминалась команда «git commit -m 'first commit'». Как только я это использовал, все было хорошо!
Паскаль Линделауф

3
Я просто забыл зафиксировать свои изменения.
Ник Йозевски

Когда вы говорите, git push origin my-local-master:masterчто это значит my-local-master? Если у меня есть имя CSS-пикс моей папки , которую я хочу , чтобы подтолкнуть
Нофел

187

У меня возникла та же проблема, и я ударил себя по голове, потому что я на самом деле не добавил свои файлы проекта.

git add -A
git commit -am "message"
git push origin master

Да, я пробовал следующее, но для меня было решение использовать вашу команду: git add * Правильный синтаксис: git add.
Эрик Мартиндейл,

5
То же самое ... Боже. Спасибо!
cbmeeks

28

Я была такая же проблема. Я удалил папку .git и выполнил следующие команды

  1. $ git init
  2. $ git add .
  3. $ git remote add origin git@gitorious.org:project/project.git
  4. $ git commit -m "Initial version"
  5. $ git push origin master

9

У меня такая же проблема. это решило мою проблему. Если вы инициируете свой мерзавец. вы должны сделать на терминале

1) git add .

2)git commit -m "first commit"

Для отправки в битбакет

3) git push -u origin --all # pushes up the repo and its refs for the first time


6

У меня просто была такая же проблема при создании моего первого Git-репозитория. У меня была опечатка в удаленном создании Git origin - оказывается, я не прописал название своего хранилища.

 git remote add origin git@github.com:Odd-engine

Сначала я удалил старый пульт, используя

git remote rm origin

Затем я воссоздал происхождение, убедившись, что имя моего происхождения было напечатано ТОЧНО точно так же, как было написано мое происхождение.

git remote add origin git@github.com:Odd-Engine

Нет больше ошибок! :)


4

У меня была та же ошибка, поскольку Bombe сказал, что в моей конфигурации нет локальной ветки с именем master, хотя я git branchи перечислил ветку с именем master ...

Чтобы это исправить, просто добавьте это в ваш .git / config

[branch "master"]
    remote = origin
    merge = refs/heads/master

Вроде хаки, но делает работу


3

убедитесь, что вы находитесь на ветке, по крайней мере, в ветке master

тип:

git branch

Тебе следует увидеть:

ubuntu-user: ~ / git / turmeric-releng $ git branch

* (no branch)
master

затем введите:

git checkout master

тогда все ваши изменения будут помещены в основную ветку (или ветку, которую вы выберете)


2

Чтобы действительно решить проблему, я использовал следующую команду, чтобы подготовить все мои файлы к фиксации.

$ git add .
$ git commit -m 'Your message here'
$ git push origin master

У меня была проблема, что команда -u в git add фактически не добавляла новые файлы, а команда -it git add -A не поддерживалась при моей установке git. Таким образом, как упоминалось в этой теме, коммит, который я пытался выполнить, был пустым.


это сработало для меня! Я пробовал слишком много команд и ничего не изменилось ... но это было решением для меня!
Каренсантана

1

я исправил свою проблему ....

не уверен, в чем проблема, но используя интерфейс gitx для фиксации моих промежуточных файлов, затем ...

$ git push origin master

работал...

У меня та же проблема...

создал новую папку, добавленную в файлы шаблона bort ...

$ git commit -m 'first commit'

$ git remote add origin git@github.com:eltonstewart/band-of-strangers.git

$ git push origin master

тогда я получаю ту же ошибку ...

ошибка: src refspec master не соответствует ни одному.
Неустранимый: удаленный конец неожиданно повесил
ошибку: не удалось отправить некоторые ссылки на «git@github.com: eltonstewart / band-of-strangers.git»


1
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git'

Если вы не обобщаете сообщение об ошибке, похоже, что вы буквально поместили его в git@github.com:{username}/{projectname}.gitкачестве удаленного репозитория Git. Вы должны заполнить {username}свое имя пользователя GitHub и имя {projectname}вашего проекта.


1
cd  app 

git init 

git status 

touch  test 

git add . 

git commit  -a  -m"message to log " 

git commit  -a  -m "message to log" 

git remote add origin 

 git remote add origin git@git.google.net:cherry 

git push origin master:refs/heads/master

git clone git@git.google.net:cherry test1

1

У меня была такая же проблема. Я ошибочно создал каталог в машине в нижнем регистре. Однажды изменив дело, проблема решилась (но потратил впустую мои 1,5 часа :(). Проверьте, что ваше имя каталога и имя удаленного хранилища совпадают.


1

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

У меня также была эта ошибка в новом репозитории github. Получается, что у пользователя, от которого я нажимал, не было права доступа. По какой-то причине это приводит к ошибке «ОШИБКА: хранилище не найдено» вместо какой-либо ошибки доступа.

Во всяком случае, я надеюсь, что это помогает бедной душе, которая сталкивается с той же проблемой.


1

была такая же проблема минуту назад, а затем исправил

создать репозиторий в github под названием WordPress ...

cd wordpress
git init
git add -A
git commit -am “WordPress 3.1.3″ or any message
git remote add origin git@github.com:{username}/wordpress.git
git push -u origin master

это должно работать, чтобы решить проблему refspec


Спасибо, это работает для меня .. могу ли я знать, в чем разница между "Git Add". и "git add -A"
Сатиш Карутури

без разницы, если вы находитесь на v 2.x, имеет значение только, если вы находитесь на проверочной таблице 1.x для будущего ref: stackoverflow.com/a/26039014/640727
Дэвид Чейз

0

Я неправильно поставил пробел после - так что вместо -m у меня было - m Просто что-то искать.


0

Я думаю, что в более старой версии git вы должны сначала зафиксировать хотя бы один файл, а затем вы можете еще раз «нажать оригинал мастера».


0

здорово .. это проблема с пустой директорией только больше ничего. Я решил свою проблему, создав один двоичный файл в каждом каталоге, а затем добавил их.


0

Инициал add & commit работал как шарм. Я думаю, это просто вопрос понимания методологии Git по управлению проектом в репозитории.

После этого мне удалось без промедления отправить мои данные.


0

Я только что столкнулся с этой проблемой, и это, похоже, было вызвано тем, что я не добавил пользовательское сообщение о фиксации над сообщением о фиксации по умолчанию (я подумал, зачем писать «начальная фиксация», когда в тексте, сгенерированном Git, четко сказано то же самое) под этим).

Проблема была решена, когда я удалил каталог .git, повторно инициализировал каталог проекта для Git, повторно добавил удаленный GitHub, добавил все файлы на новый этап, зафиксировал личное сообщение над автоматически сгенерированным сообщением и отправил в происхождение / хозяин.


0

Когда вы создаете репозиторий на Github, он добавляет файл README.md в репозиторий, и, поскольку этот файл может отсутствовать в вашем локальном каталоге, или, возможно, он может иметь другой контент, git push не будет работать. Для решения проблемы я сделал:

git pull origin master
git push origin master

На этот раз это сработало, так как у меня был файл README.md.


0

Перед первым коммитом попробуйте добавить файл вроде readme.txt. Это «заставит» удаленного репо создать мастер ветки в случае, если он не существует. Это сработало для меня.


0

Это очень старый вопрос, но для всех новых людей, которые окажутся здесь, как я. Это решение только для

error: src refspec master does not match any.

ошибка для нового репо

Вы должны добавить свой

git config user.email "your email"
git config user.name "name"

Только после добавления адреса электронной почты и имени добавьте файлы в git и commit

git add .
git commit -m "message"

Это будет работать как шарм


0

У меня тоже есть эта ошибка, я положил коммит для не толкать пустой проект, как многие люди делают, но не работает

Проблема была ssl, у поставил следующий

git config --system http.sslverify false

И после этого все отлично работает :)

мастер происхождения git push


0

У меня была та же проблема / ошибка. Я делал git push -u origin masterвместо этого, я просто сделал, git push origin masterи это сработало.


0

зайдите в панель управления -> управляйте своими учетными данными и удалите учетные данные github, если таковые имеются.


0

Натыкаясь на старую ветку.

Если вы создали репозиторий на Github с помощью a Readmeили a .gitignore, вам, возможно, придется переназначить локальный мастер на удаленный мастер. Потому что, если вы используете инструмент скаффолдинга проекта, такой как create-app, он создает эти файлы для вас, и удаленный мастер должен быть синхронизирован с вашим локальным, прежде чем вы нажмете.

Если вы создаете пустой репозиторий на Github, то вы можете просто нажать.


-1

У меня была такая же проблема, некоторые пользователи ответили на это. Перед толчком у вас должен быть первый коммит. Теперь для новых пользователей я создал ряд простых шагов. Перед этим вам нужно установить git и запустить в командной строке:

  • git config user.email "ваша электронная почта"
  • git config user.name "name"

Шаги для создания удаленного хранилища (я использую Dropbox в качестве удаленного хранилища):

1. create a directory in Dropbox (or on your remote server)
2. go to the Dropbox dir (remote server dir)
3. type git command: git init --bare
4. on your local drive create your local directory
5. go to local directory
6. type git command: git init
7. add initial files, by typing git command:: git add <filename> 
8. type git command: git commit -a -m "initial version" (if you don't commit you can't do the initial push
9. type git command: git remote add name <path to Dropbox/remote server> 
10. git push name brach (for first commit the branch should be master)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.