问题
I have tried to follow the solutions suggested in this post but it didnt work and I am still getting: src refspec master does not match any.
Here is what I did: Followed this solution
// adding the file I created
$ git add .
$ git commit -m 'initial commit'
$ git push origin master
error: src refspec master does not match any.
When doing:
$ 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.
More information:
$ 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
So I am definitely missing refs/heads/master but dont know how to create it.
Thanks
回答1:
From git branch
it appears that somehow your local branch name is "origin".
You can rename the branch with -mv
flag, like this:
git branch -mv origin master
After this git branch
should show master
:-)
Just to make sure the name is indeed the only thing that went astray, you can run git log
and look at the last few commits - and compare them to the last few commits on bitbucket website.
回答2:
This should help you
git init
git add .
git commit -m 'Initial Commit'
git push -u origin master
回答3:
i have same problem, to solve it, follow these steps
git init
git add .
git commit -m 'message'
git push -u origin master
after this, if you still having that error, follow these steps again
git add .
git commit -m 'message'
git push -u origin master
that worked for me and Hope it will help anyone
回答4:
I was having the SAME ERROR AGAIN AND AGAIN.
I added files in local repository and Trying the command
"git push origin master"
Showed Same Error
ALL I WAS MISSING I DID NOT COMMIT .
" git commit -m 'message' "
After Runnig this it worked
回答5:
Try to do :
git push origin HEAD:master
回答6:
By just adding an empty commit will fix issue by using
$ git commit -m "empty commit" --allow-empty
$ git push
// above make empty commit without edit then push
回答7:
Try following command:
git push origin HEAD:master
Git threw the below error when I tried simply git push
. So clearly this is because Git matches the local and remote branch while pushing commits. This is the push.default
behavior, you can find out more details here.
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:
Run the command git show-ref
, the result refs/heads/YOURBRANCHNAME
If your branch is not there, then you need to switch the branch by
git checkout -b "YOURBRANCHNAME"
git show-ref
, will now show your branch reference.
Now you can do the operations on your branch.
回答9:
Check that you call the git commands from the desired directory (where the files are placed).
回答10:
In my case the error was caused because I was typing
git push origin master
while I was on the develop branch try:
git push origin branchname
Hope this helps somebody
回答11:
This error can typically occur when you have a typo in the branch name.
For example you're on the branch adminstration
and you want to invoke:
git push origin administration
.
Notice that you're on the branch without second i
letter: admin(i)stration
, that's why git prevents you from pushing to a different branch!
回答12:
Setup username and password in the git config
In terminal, type
vi .git/config
edit url with
url = https://username:password@github.com/username/repo.git
type :wq
to save
回答13:
Only because your local branch does not math the one in your remote repository. git push origin HEAD:master Enable you to ignore the conflict and upload your commit anyway.
回答14:
For a new repository, the method works for me:
Remote the files related with git
rm -rf .git
Do the commit again
git add . && git commit -m "your commit"
Add the git URL and try to push again
git remote add origin <your git URL>
And then try to push again
git push -u origin master -f
Success!
Since it's a new repository, so it doesn't matter for me to remove the git and add it again.
回答15:
It happened to me and I discovered that github was trying to verify my account. So you need these 2 commands:
git config --global user.email <your github email>
git config --global user.name <your github username>
回答16:
FWIW, ran into same error, but believe it came about due to the following sequence of events:
- Remote Git repo was created with
master
branch. - Local clone was then created.
- Remote Git repo was then modified to include a
dev
branch, which was defined as the default branch, in conjunction with permissions added to themaster
branch preventing changes without a pull request. - Code updates occurred in the local clone, ready to be pushed to the remote repo.
Then, when attempting to push changes from the local to the remote, received error "src refspec master does not match any", or when attempting to push to dev
, "src refspec dev does not match any".
Because changes were pending in the local clone, I did not want to blast it and refresh.
So, fixed the issue by renaming the local branch to dev
...
$ git branch -m dev
...followed by the normal push of git push origin dev
, which worked this time without throwing the aforementioned error.
回答17:
For me, the fix appears to be "git ." (stages all current files). Apparently this is required after a git init? I followed it by "get reset" (unstages all files) and proceeded with the exact same commands to stage only a few files, which then pushed successfully.
git .
git reset
回答18:
The error demo:
007@WIN10-711082301 MINGW64 /d/1 (dev)
$ git add --all
007@WIN10-711082301 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
007@WIN10-711082301 MINGW64 /d/1 (dev)
$ git push origin dev
error: src refspec dev does not match any.
error: failed to push some refs to 'git@github.com:yourRepo.git'
You maybe not to do $ git commit -m "discription"
.
Solution:
007@WIN10-711082301 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
007@WIN10-711082301 MINGW64 /d/1 (dev)
$ git push origin dev
To git@github.com:Tom007Cheung/Rookie-s-Resume.git
! [rejected] dev -> dev (fetch first)
error: failed to push some refs to 'git@github.com: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.
来源:https://stackoverflow.com/questions/21264738/error-src-refspec-master-does-not-match-any