Are you using the Team Synchronise view? If so that’s the problem. Conflict resolution in the Team Synchronise view doesn’t work with EGit. Instead you need to use the Git Repository view.
Open the Git perspective. In the Git Repository view, go to on Branches → Local → master and right click → Merge…
It should auto select Remote Tracking → origin/master. Press Merge.
It should show result:conflict.
Open the conflicting files. They should have an old sk000l >>>> ===== <<<< style merge conflict in the files. Edit the file to resolve the conflict, and save.
Now in the ‘Git Staging’ view, it should show the changed file in ‘Unstaged Changes’. Right click and ‘Add to Index‘

Repeat for any remaining files.
Now from the ‘git staging’ view, commit and push. As Git/Eclipse now knows that you have merged the remote origin changes into your master, you should avoid the non-fast-forward error.
Instead of editing the conflicted file directly, you can use replace with -> ours/theirs to accept one version of all conflicts
