Git error: failed to push some refs to remote :
(Note: starting Oct. 2020, any new repository is created with the default branch
master. And you can rename existing repository default branch from
The rest of this 2014 answer has been updated to use “
If the GitHub repo has seen new commits pushed to it, while you were working locally, I would advise using:
git pull --rebase git push
The full syntax is:
git pull --rebase origin main git push origin main
With Git 2.6+ (Sept. 2015), after having done (once)
git config --global pull.rebase true git config --global rebase.autoStash true
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
git pull origin yourBranch).
I would recommend a:
# add and commit first git push -u origin main
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
git reset --mixed origin/main git add . git commit -m "This is a new commit for what I originally planned to be amended" git push origin main
There is no need to
git reset --mixed origin/main can also be written
git reset origin/main, since the
--mixed option is the default one when using
git push -f origin master
That should solve the problem.
Based on @Mehdi‘s comment, a clarification about
—force pushing: The Git command above works safely only for the first commit. If there were already commits, pull requests or branches in previous, this resets all of it and set it from zero. If so, please refer @VonC‘s detailed answer for a better solution.