title: What is the difference between "git init" and "git init --bare"?
body: <p>What is the different between <code>git init</code> and <code>git init --bare</code>? I found that a lot of blog post requires <code>--bare</code> for their Git server?</p>
  
  <p>From <a href="https://www.kernel.org/pub/software/scm/git/docs/git-init.html" rel="noreferrer">the man page</a>, it said:</p>
  
  <blockquote>
  <pre><code>--bare
  </code></pre>
    
    <p>Create a bare repository. If GIT_DIR environment is not set, it is set to the current working directory</p>
  </blockquote>
  
  <p>But what does it actually mean? Is it required to have <code>--bare</code> for the Git server setup?</p>