I clone my repository with:
git clone ssh://xxxxx/xx.git
But after I change some files and add
and commit
them, I want to push them to the server:
git add xxx.php
git commit -m "TEST"
git push origin master
But the error I get back is:
error: src refspec master does not match any.
error: failed to push some refs to 'ssh://xxxxx.com/project.git'
94 Answers
Maybe you just need to commit. I ran into this when I did:
mkdir repo && cd repo
git remote add origin /path/to/origin.git
git add .
Oops! Never committed!
git push -u origin master
error: src refspec master does not match any.
All I had to do was:
git commit -m "initial commit"
git push origin master
Success!
- Try
git show-ref
to see what refs you have. Is there arefs/heads/master
?
Due to the recent “Replacing master with main in GitHub” action, you may notice that there is a
refs/heads/main
. As a result, the following command may change fromgit push origin HEAD:master
togit push origin HEAD:main
- You can try
git push origin HEAD:master
as a more local-reference-independent solution. This explicitly states that you want to push the local refHEAD
to the remote refmaster
(see the git-push refspec documentation).
I also had a similar error after deleting all files on my local computer, and I have to clean up all files in the repository.
My error message was something like this:
error: src refspec master does not match any.
error: failed to push some refs to '[email protected] ... .git'
And it was solved by executing the following commands:
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.
- My changes were already committed
- Force push still gave me the same error.
So I tried Vi’s solution:
git push origin HEAD:<remoteBranch>
This worked for me.
git push -u origin master
error: src refspec master does not match any.
For that you need to enter the commit message as follows and then push the code:
git commit -m "initial commit"
git push origin master
Successfully pushed to master.
For me I had to make sure the public key is properly configured on the server (appended in ~/.ssh/authorized_keys) and in GitHub/Bitbucket (added to my SSH keys on GitHub or Bitbucket) – they need to match.
Then:
git add --all :/
git commit -am 'message'
git push -u origin master
It worked for me in the end.
I found this happened in a brand new repository after I Git added only a directory.
As soon as I added a file (e.g. a README), Git push worked great.
Missing or skipping git add .
or git commit
may cause this error:
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'
To fix it, reinitialize and follow the proper sequence:
git init
git add .
git commit -m 'message'
git *create remote
git push -u origin master
To fix it, re-initialize and follow the proper code sequence:
git init
git add .
git commit -m 'message'
git push -u origin master
Make sure you’ve added first, and then commit/ push:
Like:
git init
git add .
git commit -m "message"
git remote add origin "github.com/your_repo.git"
git push -u origin master
I faced the same problem, and I used --allow-empty
:
$ git commit -m "initial commit" --allow-empty
...
$ git push
...
Supplement
One of main reasons of this problem is that some Git servers, such as BitBucket, don’t have their master
branch initialized when a fresh repository is cloned.
This happens too when you are in a specific branch and try to push another branch that does not exist yet, like:
$ 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'
For me,following worked to move untracked files:
git add --all
Next, I followed similar steps
git commit -m "First commit"
Then,
git remote add origin [email protected]
Last but not the least:
git push -u origin master
As you do this, Windows security will pop up asking for your username and password.
In my case, I forgot to include the .gitignore
file. Here are all the steps required:
- Create an empty Git repository on remote,
- On local create the .gitignore file for your project. GitHub gives you a list of examples here
-
Launch a terminal, and in your project do the following commands:
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
Just add an initial commit. Follow these steps:
-
git add .
-
git commit -m "initial commit"
-
git push origin master
This worked for me.
My issue was that the ‘master’ branch hadn’t been created locally yet.
A quick
git checkout -b "master"
created the master branch, at which point, a quick
git push -u origin master
pushed the work up to the Git repository.
You probably forgot the command “git add .” after the “git init” command.
This just mean you forgot to do the initial commit, try
git add .
git commit -m 'initial commit'
git push origin master
I also followed GitHub’s directions as follows below, but I still faced this same error as mentioned by the OP:
git init
git add .
git commit -m "message"
git remote add origin "github.com/your_repo.git"
git push -u origin master
For me, and I hope this helps some, I was pushing a large file (1.58 GB on disk)
on my MacOS. While copy pasting the suggested line of codes above, I was not waiting for my processor to actually finish the add .
process. So When I typed git commit -m "message"
it basically did not reference any files and has not completed whatever it needs to do to successfully commit my code to GitHub.
The proof of this is when I typed git status
usually I get green fonts for the files added. But everything was red. As if it was not added at all.
So I redid the steps. I typed git add .
and waited for the files to finish being added. Then I followed through the next steps.
It happens if you forget to commit before pushing for the first time. Just run:
git commit -m "first commit"
- First,
git add .
- Second,
git commit -m "message"
- Third,
git push origin branch
Please check for spelling mistakes because that could also give that error.
I had the same problem when I missed to run:
git add .
(You must have at least one file, or you will get the error again.)
To check the current status, git status
.
And follow these steps as well:
git init
git add .
git commit -m "message"
git remote add origin "github.com/your_repo.git"
git push -u origin master
This happens when you have added your file, forgot to commit and pushing. So commit the files and then push.
If you get this error while working in detached HEAD mode, you can do this:
git push origin HEAD:remote-branch-name
See also: Making a Git push from a detached head
If you are on a different local branch than the remote branch, you can do this:
git push origin local-branch-name:remote-branch-name
I had the same problem. I did it by the following steps:
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
Short answer: This error means the branch you want to push in remote doesn’t exist!
In my case, starting from October-2020, the repos created since then had the main
branch instead of the previous master
branch. So all I had to do this:
git push -u origin main
- you may skip -u flag if the upstream is set( Like in case you had cloned it already)
Bingo! That worked for me! Hope that helps! Happy coding!
This will also happen if you have a typo in the branch name you’re trying to push.
In the scenario where you check out the code from an external repository (GitHub), and want to import it in personal / internal system, this command really shines:
git push --all origin
This pushes all local branches to the remote, without checking refs and without insisting on commits.
git add .
is all you need. That code tracks all untracked files in your directory.