title: Having a hard time understanding git-fetch
body: <p>I am having a hard time understanding the nuances of git-fetch. I understand that doing a <code>fetch</code>, fetches the remote refs into a local tracking branch.</p>
  
  <p>I have a few questions though:</p>
  
  <ol>
  <li><p>Can it be possible that a local tracking branch does not exist? If so, will it then be created automatically?</p></li>
  <li><p>What will happen if I do a <code>fetch</code> and specify a non tracking branch as the destination?</p></li>
  <li><p>The man page for git-fetch specifies:</p>
  
  <pre><code>git-fetch &lt;options&gt; &lt;repository&gt; &lt;refspec&gt;
  </code></pre></li>
  </ol>
  
  <p>How would I use the refspec to fetch contents from my remote master into its remote tracking branch? I believe this may be possible if my current HEAD is on master and I run</p>
  
  <p><code>git fetch origin master</code></p>
  
  <p>However, can I use the <code>&lt;+?src:dest&gt;</code> refspec to achieve the same thing? I think this will help me understand the concepts better.</p>
  
  <p>And one more question:</p>
  
  <p>My .git/config file has the following line for fetching (showing only relevant lines):</p>
  
  <pre><code>fetch = +refs/heads/*:refs/remotes/origin/*
  </code></pre>
  
  <p>Can someone please explain what this line exactly means?</p>