I keep getting this error message from git while pushing, even I am trying it after pulling over and over again:

```
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '[repo url]'
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.
```

Here is what the branch history looks like:

```
A---B---C
  |   |
  D   E-F

A initial commit (me)
B some commit (me)
C master
D some commit (other dev)
E remotes/origin/master - Merge branch 'master' of [repo url]
F Local uncommitted changes, not checked into an index

```

From here, when I pull, nothing comes. When I push, I get the error. How can I successfully push again?