git error: failed to push some refs to remote


For some reason, I can’t push now, whereas I could do it yesterday. Maybe I messed up with configs or something.

This is what happens:

When I use the git push origin master


What my working directory and remote repository looks like:

Screenshot of Windows file folder with these directories: .git, css, js. And these files: index.php, readme, setsu.php. The word "local" with an arrow points to the css-folder. Below, screenshot with heading "github", and a css-folder and index.php-file

(Note: starting Oct. 2020, any new repository is created with the default branch main, not master. And you can rename the existing repository default branch from master to main. The rest of this 2014 answer has been updated to use “main“)

If the GitHub repo has seen new commits pushed to it, while you were working locally, I would advise using:

The full syntax is:

With Git 2.6+ (Sept. 2015), after having done (once)

A simple git pull would be enough.
(Note: with Git 2.27 Q2 2020, a merge.autostash is also available for your regular pull, without rebase)

That way, you would replay (the --rebase part) your local commits on top of the newly updated origin/main (or origin/yourBranchgit pull origin yourBranch).

See a more complete example in the chapter 6 Pull with rebase of the Git Pocket Book.

I would recommend a:

That would establish a tracking relationship between your local main branch and its upstream branch.
After that, any future push for that branch can be done with a simple:

Since the OP already reset and redone its commit on top of origin/main:

There is no need to pull --rebase.

Note: git reset --mixed origin/main can also be written git reset origin/main, since the --mixed option is the default one when using git reset.

Leave a Reply