title: What is the purpose of git merge's rebase option?
body: <p>Learning git from <a href="https://www.atlassian.com/git/tutorials/comparing-workflows/centralized-workflow" rel="nofollow">here</a></p>
  
  <pre><code>git pull --rebase origin master
  </code></pre>
  
  <p>What is the difference with and without the --rebase option? I read that rebase option allows you to put your own commits over the master branch after the commits have synced up, but isn't that what happens normally anyway?</p>
  
  <p><strong>I also don't understand the purpose of designating a branch as an option during checkout.</strong></p>
  
  <pre><code>git checkout -b marys-feature master
  </code></pre>
  
  <p>Why do you need to designate <code>master</code>? If you're already on master on it, wouldn't making a new branch automatically make it a copy of the master branch. If so, designating the branch you want to make a copy of is only useful if you're on a branch (the currently checked out branch) that you don't want to copy off of it right?</p>
  
  <p><strong>Also, what's the purpose of the -u option during a push?</strong></p>
  
  <pre><code>git push -u origin marys-feature
  </code></pre>
  
  <p>Even if you don't have the <code>-u</code> it would have made it a remote tracking branch right? I thought anything you push will make it remote tracking automatically? </p>