title: Difference between git pull, git fetch+merge and git rebase
body: <p>I am confused between <code>git pull</code>, <code>git fetch</code> + <code>git merge</code> and <code>git rebase</code>.
  They all seem to do same function then what is the difference between them specially in terms of commit logs.</p>
  
  <p>If there are changes in both remote and local branch then whose commit will appear first in all three cases.</p>