Git throws error: src refspec master does not match any, due to a number of reasons and most common are – Wrong or spelling mistake in branch name, using older ‘master’ instead of ‘main’, or forgot commit before pushing.
Steps to follow
1. Commit before pushing to branch
mkdir newrepo && cd newrepo git remote add origin /path/to/origin.git git add . git push -u origin master error: src refspec master does not match any.
Here we forgot to commit before pushing. So, do it like this –
mkdir newrepo && cd newrepo git remote add origin /path/to/origin.git git add . git commit -m "my first commit" git push -u origin master
2. Windows expect commit messages to be in double quotes.
git commit -m 'my first commit'
Sometimes, git throws error on this. You need to enclose the message in double quotes.
git commit -m "my first commit"
3. Check if you are committing empty directory
In some versions of git or depending on platforms like github or bitbucket, empty directories do not commit. They might not throw an error during this step but while pushing they might do. To solve this problem, you may add a file to the directory and then push.
4. Check your local and remote branch names
Generally, a small spelling mistake could lead to problems. Suppose your branch name is school
and you are using below command then it will throw refspec
error –
git push scool
5. Check if branch exists
There are situations when people read outdated documentation and got into problems. One of such problem is ‘master‘ branch. Github replace it with main branch. So, you need to check if master branch exists.
git push origin main
6. Check for what refs you have
It is important to check if wherever you are pushing your code, that ref exists or not. To check that you can use this command –
git show-ref
This command will return something like this – refs/heads/master
or refs/heads/main
.
Now you can try pushing using this command –
git push origin HEAD:main