Search code examples
gitgit-push

Why "git push" is rejected? ("git pull" doesn't help)


My current branch is my_branch. Trying to push the changes to the remote repo I get:

$ git push
Counting objects: 544, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (465/465), done.
Writing objects: 100% (533/533), 2.04 MiB | 1.16 MiB/s, done.
Total 533 (delta 407), reused 0 (delta 0)
To [email protected]
   4ed90a6..52673f3  my_branch -> my_branch
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

Trying to git pull results in:

$ git pull
Already up-to-date.

Why I get this error? How could I resolve this problem and perform git push successfully?


Solution

  • My current branch is my_branch.

    That is your problem. When you pull, Git is telling you that your branch my_branch is up to date, not master, which is behind origin/master making a fast-forward merge impossible.

    In order to push master, you need to check out master and pull. This will merge in the changes waiting on origin/master and allow you to push your own changes.

    git checkout master
    git pull
    # resolve conflicts, if any
    git push