title: Git repository structure and workflow for concurrent development life-cycle environments
body: <p>I want a several different versions of my code, at different stages of its development life-cycle, to be version controlled and live on the web concurrently at all times. Versions are typically named <em>development</em>, <em>staging</em> and <em>live</em> and are structured as in the following tree.</p>
  
  <pre><code>Sitename
    |--Development
    |--Live
    `--Staging
  </code></pre>
  
  <ul>
  <li>Is it better to create three separate repositories or one
  repository with three branches permanently checked out?</li>
  <li>What are the respective merits and demerits of each workflow?</li>
  <li>Being new to Git, how do I implement the preferred workflow?</li>
  </ul>
  
  <hr>
  
  <h2>Addendum</h2>
  
  <p>I'd prefer to create a single repository but that would mean creating the repository under <code>Sitename</code> and having three working directories within it, however my understanding is that Git does not support nested working directories. I'm aware of a contributed solution called <code>git-new-workdir</code> but have read that new users could suffer more consequences than benefits using this workflow so I'm interested in alternatives.</p>