Git push rejected “non-fast-forward”
I am fairly new to git yet currently using it to manage our code in a team environment. I had some rebasing issues and I fixed them using
git checkout --ours filename.txt git add filename.txt git rebase --continue
Now I wish to push my changes, and so running the following command
$ git push origin feature/my_feature_branch
gives me the following error:
To ssh://firstname.lastname@example.org:7999/repo/myproject.git ! [rejected] feature/my_feature_branch -> feature/my_feature_branch (non-fast-forward) error: failed to push some refs to 'ssh://email@example.com:7999/repo/myproject.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') hint: before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
What can I do to get rid of the error?
P.S. : I am avoiding to use the --force option as much as possible.
It looks, that someone pushed new commits between your last git fetch and git push. In this case you need to repeat your steps and rebase my_feature_branch one more time.
git fetch git rebase feature/my_feature_branch git push origin feature/my_feature_branch
After the git fetch I recommend to examine situation with gitk --all.
Probably you did not fetch the remote changes before the rebase or someone pushed new changes (while you were rebasing and trying to push). Try these steps:
#fetching remote 'feature/my_feature_branch' branch to the 'tmp' local branch git fetch origin feature/my_feature_branch:tmp #rebasing on local 'tmp' branch git rebase tmp #pushing local changes to the remote git push origin HEAD:feature/my_feature_branch #removing temporary created 'tmp' branch git branch -D tmp