Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
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'
–
–
–
–
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!
–
–
–
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
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).
–
–
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.
–
–
–
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
–
–
–
–
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
–
–
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'
–
–
–
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.
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 README.md file and GitHub instructs us with basic commands while creating the repository.
My solution
My solution is to use git add .
after 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
–
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
–
Two possibilities :
1- Either you 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
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 :
On your local project:
remove the .git
folder if it exists
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
–
After the GitHub update 01.10.20 you should use main instead of master.
Do it like these way...
Create a repository on GitHub
Delete existing .git
file on your local directory
Go to local project directory and type git init
git add .
git commit -m"My First Commmit"
Now check your branch name it will be master
in your local project
git remote add origin <remote repository URL past here from the github repository>
then type git remote -v
git push -f origin master
Now check the github repository you will see two branch 1. main
2. master
In your local repository create new branch and the branch name will be main
git checkout main
git merge master
git pull origin main
git push -f origin main
Note: from 01.10.20 github decided use main
instead of master
branch use default branch name
–
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.
–
–
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 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.