Question

Message 'src refspec master does not match any' when pushing commits in Git

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'
 4157  4690880  4157
1 Jan 1970

Solution

 5893

Maybe you just need to commit. I ran into this when I did:

mkdir repo && cd repo
git init
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 main

Success!

2011-09-27
baisong

Solution

 1797
  1. Try git show-ref to see what refs you have. Is there a refs/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 from git push origin HEAD:master to git push origin HEAD:main

  1. 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 ref HEAD to the remote ref master (see the git-push refspec documentation).
2010-11-15
Vi.

Solution

 285

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 'git@github ... .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.
2012-01-04
Aryo

Solution

 153
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.

2017-08-09
VIKAS KOHLI

Solution

 141

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
2014-09-02
pyfork

Solution

 133

This happened to me in a brand new repository after I ran git add with only an empty directory.

As soon as I added a file (e.g. a git add README.md), then git push worked great.

2011-09-25
Andrew E

Solution

 81

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://yourusername@github.com': 
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
2012-11-03
aug2uag

Solution

 73

To fix it, re-initialize and follow the proper code sequence:

git init
git add .
git commit -m 'message'
git push -u origin master
2015-01-12
pratik kumar

Solution

 73

Problem faced

I had the same problem when I was creating a new repository on GitHub and linking it with my React app in the client computer I have.

I used the following steps:

Commands used before the problem

git init
git commit -m "first commit"
git branch -M main
git remote add origin "_git repository link here_"
git push -u origin main

My mistake

But as you can see, my mistake was not using the git add . command. I did this mistake, because I already had the README.md file and GitHub instructs us with basic commands while creating the repository.

My solution

My solution is to use git add . after the git init command.

Use the following set of commands in the same order to overcome the problem:

git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin "_git repository link here_"
git push -u origin main
2021-06-14
Aswin Barath

Solution

 69

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'
2012-05-23
wilsonfoz

Solution

 65

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.

2018-10-25
Jin Kwon

Solution

 63

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
2018-04-28
Saurabh Singh

Solution

 62

I faced the same issue some days ago.

If you created a new repository nowadays (2020) then the default branch is main on GitHub.

You can check on GitHub now in your repository branches.

And you can also check the branch in the terminal by running the command:

git branch

So that's why you need to run

git push origin main

instead of

git push origin master
2020-12-16
Arslan Ahmad khan

Solution

 47

Two possibilities:

1- Either you forgot to include the .gitignore file.

Here are all the steps required:

  1. Create an empty Git repository on remote,

  2. On local, create the .gitignore file for your project. GitHub gives you a list of examples here

  3. 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
    

2- Or you are trying to create a new GitHub project.

GitHub replaced master with main as the default branch name. To resolve the issue:

  1. On your local project:
    1. remove the .git folder if it exists
    2. recreate a clean repository by launching the following in your project:

In the terminal:

git init

git add .

git commit -m "YOUR FIRST MESSAGE HERE"

git branch -M main

git remote add origin _GIT_LINK_TO_PROJECT_HERE_

git push -u origin main
2019-05-28
Ismail H

Solution

 43

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 git@github.....

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.

2020-01-13
Areeha

Solution

 33

You probably forgot the command git add . after the git init command.

2019-04-25
Sumer

Solution

 30

After the GitHub update 2000-10-01, you should use main instead of master.

Do it like this way...

  1. Create a repository on GitHub
  2. Delete existing .git file in your local directory
  3. Go to the local project directory and type git init
  4. git add .
  5. git commit -m"My first commit"
  6. Now check your branch name. It will be master in your local project
  7. git remote add origin <remote repository URL past here from the GitHub repository>, and then type git remote -v
  8. git push -f origin master
  9. Now check the GitHub repository. You will see two branch 1. main 2. master
  10. In your local repository create a new branch and the branch name will be main
  11. git checkout main
  12. git merge master
  13. git pull origin main
  14. git push -f origin main

Note: from 2020-10-01, GitHub decided use main instead of master branch to use as the default branch name.

2020-10-09
iamtheasad

Solution

 28

Just add an initial commit. Follow these steps:

  • git add .

  • git commit -m "initial commit"

  • git push origin master

This worked for me.

2017-12-28
NeeruKSingh

Solution

 28

Feb, 2022 Update:

If your branch is "main":

enter image description here

Run this command:

git push origin main

If your branch is "master":

enter image description here

Run this command:

git push origin master
2021-02-28
Super Kai - Kazuya Ito

Solution

 28

I have faced the same issue, and this solved my problem:

Just make a branch:

git checkout -b "master"

After that,

git push -u origin master

Boom.

2021-06-02
Alamin

Solution

 27

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.

2014-12-12
Anthony

Solution

 26

GitHub changed the default branch name from master to main. So if you created the repository recently, try pushing the main branch:

git push origin main

Reference

Renaming the default branch from master (GitHub)

2020-10-30
shivampip

Solution

 26

Maybe the branch is main instead of master.

Try

git push origin HEAD:main

or

git push origin main

2021-05-20
Sankalp Gour

Solution

 21

This happens when you have added your file, forgot to commit and pushing. So commit the files and then push.

2011-12-03
user993563

Solution

 21
  1. First, git add .
  2. Second, git commit -m "message"
  3. Third, git push origin branch

Please check for spelling mistakes because that could also give that error.

2015-06-11
Alwan Mortada

Solution

 21

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
2018-03-02
snap

Solution

 21

It happens if you forget to commit before pushing for the first time. Just run:

git commit -m "first commit"
2019-09-08
Badr Bellaj

Solution

 21

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
2019-09-12
Dinith

Solution

 20

This just mean you forgot to do the initial commit, try

git add .
git commit -m 'initial commit'
git push origin master
2014-05-04
xuri

Solution

 20

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.)

2017-02-11
neoDev