Ошибка: src refspec master не соответствует

Я попытался выполнить решения, предложенные в этой, но он не работал, и я все еще получаю: src refspec master не соответствует ни одному.

Вот что я сделал: Следующее это решение

// adding the file I created
$ git add .
$ git commit -m 'initial commit'
$ git push origin master
error: src refspec master does not match any.

При выполнении:

$ git push origin HEAD:master
b40ffdf..a0d1423  HEAD -> master // looks promising

// adding a remote
$ git remote add devstage -f <another git>
$ git merge devstage/master -s recursive -X ours
$ git push -u devstage master
error: src refspec master does not match any.

Дополнительная информация:

$ git branch 
* origin

$ git show-ref
refs/heads/origin
refs/remotes/devstage/master
refs/remotes/origin/HEAD
refs/remotes/origin/devstage
refs/remotes/origin/master
refs/remotes/origin/origin

Итак, я определенно отсутствует refs/heads/master, но не знаю, как его создать.

Спасибо

Ответы

Ответ 1

Из git branch кажется, что каким-то образом ваше имя локальной ветки является "источником".

Вы можете переименовать ветвь с флагом -mv, например:

git branch -mv origin master

После этого git branch должен показать master: -)

Просто чтобы убедиться, что имя действительно единственное, что сбилось с пути, вы можете запустить git log и посмотреть на последние несколько коммитов - и сравнить их с последними коммитами на сайте Bitbucket.

Ответ 2

Это поможет вам

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

Ответ 3

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

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

после этого, если у вас все еще есть эта ошибка, выполните следующие шаги

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

который работал у меня, и надеюсь, что это поможет кому-то

Ответ 4

У меня была ОЖИДАЕМАЯ ОШИБКА СНОВА И СНОВА.

Я добавил файлы в локальный репозиторий и попробовал команду

"git push origin master"

Показывает ту же ошибку

ВСЕ, КОТОРЫЕ Я НЕ ПРОПУСТИТЬ, Я НЕ МОЖЕТ ОБЯЗАТЕЛЬНО.

"git commit -m 'message'"

После Runnig это сработало

Ответ 5

Попробуйте сделать:

git push origin HEAD:master

Ответ 6

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

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

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

Ответ 7

Попробуйте следующую команду:

git push origin HEAD:master

Git выдал следующую ошибку, когда я попытался просто git push. Ясно, что это потому, что Git сопоставляет локальную и удаленную ветки, нажимая коммиты. Это поведение push.default, более подробную информацию вы можете найти здесь .

fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use

    git push origin HEAD:<Branch_Name>

To push to the branch of the same name on the remote, use

    git push origin <Branch_Name>

To choose either option permanently, see push.default in 'git help config'.

Ответ 8

Запустите команду git show-ref, результат refs/heads/YOURBRANCHNAME Если вашей ветки нет, вам нужно переключить ветвь на

git checkout -b "YOURBRANCHNAME"

git show-ref, теперь покажет ссылку на вашу ветку.

Теперь вы можете выполнять операции в своей ветке.

Ответ 9

Убедитесь, что вы вызываете команды git из нужного каталога (где находятся файлы).

Ответ 10

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

Ответ 11

В моем случае ошибка была вызвана тем, что я печатал

git push origin master

пока я был на ветке разработки попробуйте:

git push origin branchname

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

Ответ 12

Эта ошибка может возникать, когда у вас есть опечатка в имени ветки.

Например, вы находитесь в ветке adminstration и хотите вызвать: git push origin administration.

Обратите внимание, что вы находитесь на ветке без второй буквы i: admin(i)stration, поэтому git не позволяет перейти к другой ветке!

Ответ 13

Настройте имя пользователя и пароль в git config

В терминале введите

vi .git/config

изменить URL с помощью

url = https://username:[email protected]/username/repo.git

введите :wq, чтобы сохранить

Ответ 14

Только потому, что ваша локальная ветвь не соответствует математике в вашем удаленном репозитории. git push origin HEAD: мастер Разрешите игнорировать конфликт и загружать его в любом случае.

Ответ 15

Для нового репозитория метод работает для меня:

  1. Удалите файлы, связанные с git
    rm -rf.git

  2. Повторите попытку
    git add. && git commit -m "your commit"

  3. Добавьте URL-адрес git и попробуйте снова нажать
    git remote add origin <your git URL>

  4. И затем попробуйте снова нажать
    git push -u origin master -f

  5. Успех!

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

Ответ 16

Это случилось со мной, и я обнаружил, что github пытается проверить мою учетную запись. Итак, вам нужны эти две команды:

git config --global user.email <your github email>
git config --global user.name <your github username>

Ответ 17

FWIW, столкнулся с той же ошибкой, но считаю, что это произошло из-за следующей последовательности событий:

  • Удаленное Git-репо было создано с веткой master.
  • Затем был создан локальный клон.
  • Затем удаленное репозиторий Git было изменено, чтобы включить ветку dev, которая была определена как ветвь по умолчанию, в сочетании с разрешениями, добавленными к ветке master, предотвращая изменения без запроса на извлечение.
  • Обновления кода произошли в локальном клоне, готовом к отправке в удаленное хранилище.

Затем, при попытке отправить изменения из локального в удаленное, получена ошибка "мастер src refspec не соответствует ни одному", или при попытке передать в dev, "src refspec dev не соответствует ни одному".

Поскольку в локальном клоне ожидали изменения, я не хотел его взрывать и обновлять.  Итак, исправили проблему, переименовав местную ветку в dev...

$ git branch -m dev

... с последующим обычным нажатием git push origin dev, которое на этот раз сработало, не выдавая вышеупомянутую ошибку.

Ответ 18

Для меня исправление выглядит как "git". (сбрасывает все текущие файлы). По-видимому, это требуется после git init? Я последовал за ним "get reset" (отключил все файлы) и продолжил выполнение одних и тех же команд, чтобы создать только несколько файлов, которые затем успешно нажали.

   git . 
   git reset

Ответ 19

Демонстрация ошибок:

[email protected] MINGW64 /d/1 (dev)
$ git add --all

[email protected] MINGW64 /d/1 (dev)
$ git status
On branch dev
Initial commit
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   index.html
    new file:   photo.jpg
    new file:   style.css

[email protected] MINGW64 /d/1 (dev)
$ git push origin dev
error: src refspec dev does not match any.
error: failed to push some refs to '[email protected]:yourRepo.git'

Возможно, вам не удастся сделать $ git commit -m "discription".

Решение:

[email protected] MINGW64 /d/1 (dev)
$ git commit -m "discription"
[dev (root-commit) 0950617] discription
 3 files changed, 148 insertions(+)
 create mode 100644 index.html
 create mode 100644 photo.jpg
 create mode 100644 style.css

[email protected] MINGW64 /d/1 (dev)
$ git push origin dev
To [email protected]:Tom007Cheung/Rookie-s-Resume.git
 ! [rejected]        dev -> dev (fetch first)
error: failed to push some refs to '[email protected]:yourRepo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.