Ошибка: 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
Для нового репозитория метод работает для меня:
-
Удалите файлы, связанные с git
rm -rf.git
-
Повторите попытку
git add. && git commit -m "your commit"
-
Добавьте URL-адрес git и попробуйте снова нажать
git remote add origin <your git URL>
-
И затем попробуйте снова нажать
git push -u origin master -f
-
Успех!
Поскольку это новый репозиторий, поэтому мне не важно удалить 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.