title: Why can't a branch name contain the 'hash' (#) char at the begining?
body: <p>This one </p>
  
  <pre><code>git checkout -b #1-my-awesome-feature
  </code></pre>
  
  <p>creates error</p>
  
  <pre><code>error: switch `b' requires a value
  </code></pre>
  
  <p>escaping it with backslash or wrapping it in quotes will work</p>
  
  <pre><code>git checkout -b \#1-my-awesome-feature
  </code></pre>
  
  <p>but strange enough this</p>
  
  <pre><code>git branch #1-my-awesome-feature
  </code></pre>
  
  <p>will <strong>not</strong> produce any error and if you check if it is created with</p>
  
  <pre><code>git branch --all
  </code></pre>
  
  <p>there is no branch.</p>
  
  <p>If hash char is not in the first position of the branch name, branch will be <strong>created</strong>.</p>
  
  <pre><code>git branch feature-#1
  </code></pre>
  
  <p>Executing <code>git branch</code></p>
  
  <pre><code>feature-#1
  * master
  </code></pre>
  
  <p>So my question is how hash (#) char is 'translated' in terminal and why it is not working when it is at first place?</p>
  
  <p>Thanks!</p>