Git Fast Forward
>git branch -a
* development
mylocal-branch
origin/development
>git status
# On branch development
nothing to commit (working directory clean)
>git merge mylocal-branch (you want to merge from mylocal-branch to development branch )
> git push <repository | origin> development
Works if the remote branch ‘development’ has no simultaneous commits from a co-worker, say.
But fails with the following messages if there were simultaneous commits on the remote branch ‘development’
! [rejected] development -> development (non-fast forward)
error: failed to push some refs to ‘<your repository name>’
Here is how to fix this scenario,
> git pull <repository | origin> +development:development
The ‘+’ option fast forwards the local ‘development’ branch to the remote ‘development’ branch
> git merge mylocal-branch
At this point you have changes from the remote and local ‘development’ branches merged
> git push <repository | origin> development
The changes were now pushed to the repository without being rejected. This is one scenario where you can use fast forward to merge changes and bring local and remote branches upto date.

