title: Run git push, pull and fetch without refspec argument
body: <p>From Version Control with Git by Loeliger 2ed,</p>
  
  <blockquote>
    <p>What if you don’t specify a refspec at all on a <strong>git push</strong> command? How
    does Git know what to do or where to send data?</p>
    
    <p>First, without an explicit remote given to the command, Git assumes
    you want to use origin.  </p>
    
    <p><strong>Without  a  refspec</strong>,  <strong>git  push</strong>  will  send  your  commits  to  the  remote  for  <strong>all branches that are common between your
    repository and the upstream repository</strong>. Any local branch that is not
    already present in the upstream repository will not be sent upstream;
    branches must already exist and match names.</p>
  </blockquote>
  
  <ul>
  <li><p>Are "all
  branches that are common between your repository and the upstream repository" the same as all the remote-tracking branches in the local repository and the corresponding tracked branches in the remote repository?</p></li>
  <li><p>The quote is for <code>git push</code>. 
  Does it (especially the part for the case without a refspec) apply to <code>git fetch</code> and to <code>git pull</code>?</p></li>
  </ul>