Сообщение 'src refspec master не совпадает ни с одним' при отправке коммитов в Git

Я клонирую свой репозиторий с помощью:

git clone ssh://xxxxx/xx.git 

Но после того, как я изменю некоторые файлы, add и commit их, я хочу отправить их на сервер:

git add xxx.php
git commit -m "TEST"
git push origin master

Но ошибка, которую я получаю обратно:

error: src refspec master does not match any.  
error: failed to push some refs to 'ssh://xxxxx.com/project.git'

Ответы

Ответ 1

Возможно, вам просто нужно зафиксировать. Я столкнулся с этим, когда сделал:

mkdir repo && cd repo
git remote add origin /path/to/origin.git
git add .

Oops! Никогда не совершал!

git push -u origin master
error: src refspec master does not match any.

Все, что мне нужно было сделать:

git commit -m "initial commit"
git push origin master

Успех!

Ответ 2

  1. Попробуйте git show-ref посмотреть, что у вас есть. Есть ли refs/heads/master?

  2. Вы можете попробовать git push origin HEAD:master как более локально-независимое решение. Это явно указано, что вы хотите, чтобы подтолкнуть локальный реф HEAD к удаленному рефу master (см refspec ГИТА-нажимной документация).

Ответ 3

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

Мое сообщение об ошибке было примерно таким:

error: src refspec master does not match any.
error: failed to push some refs to '[email protected] ... .git'

и он решил выполнить следующие команды:

touch README
git add README

git add (all other files)
git commit -m 'reinitialized files'
git push origin master --force  # <- caution, --force can delete others work.

Это, надеюсь, это поможет.

Ответ 4

  • Мои изменения уже были совершены
  • Force push все равно дал мне ту же ошибку.

Итак, я попробовал Vi-решение:

git push origin HEAD:<remoteBranch> 

Это сработало для меня.

Ответ 5

git push -u origin master
error: src refspec master does not match any.

Для этого вам нужно ввести сообщение коммита следующим образом, а затем нажать код

git commit -m "initial commit"

git push origin master

Успешно толкнул мастера

Ответ 6

Для меня я должен был убедиться, что открытый ключ правильно настроен на сервере (добавлен в ~/.ssh/authorized_keys) и в github/bitbucket (добавлен в мои SSH-ключи на github или битбакет) - они должны соответствовать.

Тогда:

git add --all :/

git commit -am 'message'

git push -u origin master

Работал для меня в конце.

Ответ 7

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

Как только я добавил файл (например, README), git push работал отлично.

Ответ 8

Отсутствие или пропуск git add . или git commit может привести к этой ошибке:

git push -u origin master
Username for 'https://github.com': yourusername
Password for 'https://[email protected]': 
error: src refspec master does not match any.
error: failed to push some refs to 'https://github.com/yourusername/foobar.git'

Чтобы исправить это, повторите инициализацию и следуйте правильной последовательности:

git init
git add .
git commit -m 'message'
git *create remote
git push -u origin master

Ответ 9

Чтобы исправить это, повторите инициализацию и следуйте правильной последовательности кода:

git init
git add .
git commit -m 'message'
git push -u origin master

Ответ 10

Убедитесь, что вы добавили сначала, а затем commit/push:

Подобно:

git init
git add .
git commit -m "message"
git remote add origin "github.com/your_repo.git"
git push -u origin master

Ответ 11

Это происходит также, когда вы находитесь в определенной ветке и пытаетесь нажать другую ветвь, которая еще не существует, например:

$ git branch
* version-x  # you are in this branch
  version-y

$ git push -u origin master
error: src refspec master does not match any.
error: failed to push some refs to 'origin_address'

Ответ 12

просто добавьте начальную фиксацию, выполните следующие действия: -

  • git add.

  • git commit -m "initial commit"

  • git push origin master

    Это сработало для меня

Ответ 13

В моем случае я забыл включить файл .gitignore. Вот все необходимые шаги:

  1. Создайте пустой репозиторий Git на удаленном компьютере,
  2. На локальном создании .gitignore файл для вашего проекта. Github дает вам список примеров здесь
  3. Запустите терминал, и в вашем проекте выполните следующие команды:

    git remote add origin YOUR/ORIGIN.git

    git add .

    git commit -m "initial commit or whatever message for first commit"

    git push -u origin master

Ответ 14

Я столкнулся с такой же проблемой, и я использовал --allow-empty.

$ git commit -m "initial commit" --allow-empty
...
$ git push
...

Ответ 15

Вы, вероятно, забыли команду "git add". после команды "git init".

Ответ 16

Моя проблема заключалась в том, что ветвь "master" еще не была создана локально.

Быстрый

git checkout -b "master" 

создал главную ветвь, в этот момент быстро:

git push -u origin master

Передвинул работу до репозитория git.

Ответ 17

Я также следовал указаниям githubs, как указано ниже, но все еще сталкивался с той же ошибкой, что и OP:

git init git add. git commit -m "message" git remote add origin "github.com/your_repo.git" git push -u origin master

Для меня, и я надеюсь, что это поможет некоторым, я загружал большой файл (1.58 GB on disk) на моем MacOS. Копируя, вставляя предложенную строку кодов выше, я не ждал, пока мой процессор завершит add. процесс. Поэтому, когда я набрал git commit -m "message" он, по сути, не ссылался ни на какие файлы и не выполнил все, что нужно для успешной фиксации моего кода на github.

Доказательством этого является то, что когда я набираю git status я обычно получаю зеленые шрифты для добавленных файлов. Но все было красным. Как будто это не было добавлено вообще.

Поэтому я переделал шаги. Набрал git add. и дождитесь окончания добавления файлов. Затем выполните следующие шаги.

Я надеюсь, что это помогает кому-то.

Ответ 18

Это просто означает, что вы забыли сделать первоначальную фиксацию, попробуйте

git add .
git commit -m 'initial commit'
git push origin master

Ответ 19

  • сначала git добавить.
  • second git commit -m "message"
  • третья git push origin branch проверьте наличие орфографических ошибок, поскольку это также может привести к этой ошибке.

Ответ 20

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

git add .

(У вас должен быть хотя бы один файл, или вы снова получите ошибку)

Ответ 21

В сценарии, где вы извлекаете код из внешнего репозитория (GitHub),
и хотите импортировать его в личную/внутреннюю систему,

эта команда действительно светит:

git push --all origin

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

Ответ 22

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

Ответ 23

У меня такая же проблема. Я делаю это, выполнив следующие шаги:

1. git commit -m 'message'
2. git config --global user.email "your mail"
3. git config --global user.name "name"
4. git commit -m 'message'
5. git push -u origin master

Надеюсь, что это поможет кому-то

Ответ 24

Если вы получите эту ошибку при работе в режиме отсоединения HEAD, вы можете сделать это:

git push origin HEAD:remote-branch-name

См. Также: создание git-нажатия от отдельной головки

Если вы находитесь в другом локальном филиале, чем удаленная ветвь, вы можете сделать это:

git push origin local-branch-name:remote-branch-name

Ответ 25

git добавить.

- это все, что вам нужно, чтобы этот трек отслеживал все необработанные файлы в вашем каталоге

Ответ 26

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

Ответ 27

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

git checkout -b "new branch name"
git push origin "new branch name"

Ваш код будет нажат как новая ветка.

Ответ 28

Вам нужно настроить свой git, если вы впервые используете его с помощью:

git config --global user.email "[email protected]"

git config --global user.name "Your Name"

Ответ 29

Я забыл сделать "git pull origin master" после фиксации и перед нажатием, и это вызовет ту же проблему: "src refspec master не соответствует никому при нажатии на фиксацию в git". Итак, что вам нужно сделать:

1. git add .
2. git pull origin master
3. git commit -am "Init commit"
4. git push origin master

Ответ 30

Чтобы проверить текущий статус git status

и выполните следующие действия

git init git add . git commit -m "message" git remote add origin "github.com/your_repo.git" git push -u origin master