title: how to fix Git push behind remote counterpart
body: <p>In Git, master branch changes should be integrated into dev branch. I made a copy of DEV first in local disk, then rebase master into DEV branch. then use WinMerge to manual compare file. </p>
  
  <p>but looks like this strategy is not working. I did some search, one of solution is to use push 'force' to fix it. Do we have other elegant way ? </p>
  
  <p>here are my steps:</p>
  
  <pre><code>aa@lenovo-pc MINGW64 /c/temp/TestGit2App (DevelopmentBranch)
  $ git rebase -Xours master #keep the master changes first
  # use WinMerge to merge changes back to files ...
  git add -A
  git commit -m "ddd"
  git push
  
  To 192.168.1.8:/home/git/TestGit2App.git
   ! [rejected]        DevelopmentBranch -&gt; DevelopmentBranch (non-fast-forward)
  error: failed to push some refs to 'git@192.168.1.8:/home/git/TestGit2App.git'
  hint: Updates were rejected because the tip of your current branch is behind
  hint: its remote counterpart. Integrate the remote changes (e.g.
  hint: 'git pull ...') before pushing again.
  hint: See the 'Note about fast-forwards' in 'git push --help' for details.
  </code></pre>