title: Git rebase no argument version vs one argument version
body: <p>I went through reading a bunch of stuff on SO and the Git docs, and noticed something, after messing around, that I don't completely understand:</p>
  
  <p>Let's say I have the following state and configuration post-fetch, stage 2 of a git pull, and a forced update has occurred on origin/master:</p>
  
  <pre><code>$ git log -2 --oneline
  a589c89 foo2
  e0e5946 foo
  
  $ git log -2 --oneline origin/master
  e0e5946 foo
  
  $ git config branch.master.remote
  origin
  
  $ git config branch.master.rebase
  true
  
  $ git config branch.master.merge
  refs/heads/master
  </code></pre>
  
  <p>The doc says (<a href="https://www.kernel.org/pub/software/scm/git/docs/git-rebase.html" rel="nofollow">https://www.kernel.org/pub/software/scm/git/docs/git-rebase.html</a>)</p>
  
  <pre><code>If &lt;branch&gt; is specified, git rebase will perform an automatic git
  checkout &lt;branch&gt; before doing anything else. Otherwise it remains on
  the current branch.
  
  If &lt;upstream&gt; is not specified, the upstream configured in
  branch.&lt;name&gt;.remote and branch.&lt;name&gt;.merge options will be used
  </code></pre>
  
  <p>When I specify the single argument version of git rebase this happens:</p>
  
  <pre><code>$ git rebase origin/master
  Pruned remote csv test branches
  Successfully rebased and updated refs/heads/master.
  
  $ git log -2 --oneline
  a589c89 foo2
  e0e5946 foo
  </code></pre>
  
  <p>Cool, foo2 still exists on my local branch as expected. Now doing this, which should be the same thing (implicitly) because according to the docs, branch.master.remote and branch.master.merge resolve as origin/master as shown above, unless I'm interpreting things wrong:</p>
  
  <pre><code>$ git rebase
  Pruned remote csv test branches
  Successfully rebased and updated refs/heads/master.
  
  $ git log -2 --oneline
  e0e5946 foo
  </code></pre>
  
  <p>Except foo2 is lost and we have to do <code>git reset --hard HEAD@{2}</code> to recover. Wasn’t really expecting that one. Any idea why I'm getting different behavior here? And how would I go about preventing foo2 from being lost in the process <strong>without</strong> switching branch.master.rebase to false? I intend for the pull to do a rebase.</p>