title: Keeping two staging environments - one for hotfixes and another for new release
body: <p>I am facing a problem with git branching for new releases and hotfix changes. Currently, I have </p>
  
  <ol>
  <li>a master branch tagged with release versions.  </li>
  <li>a development  branch checked out from the latest master branch and
  where new features are merged into and  </li>
  <li>a staging branch where client tests the new utilities. Once 
  successful, the code of the staging branch is merged into master
  with a new release tag.</li>
  </ol>
  
  <p>There is no production or release branch as of now as the current head of master branch points to a new release and every commit in the master is basically a release. </p>
  
  <p>Now suppose I am working on a new release, and the code is already in the staging environment with bug fixes going on.</p>
  
  <p>Suddenly there comes a new requirement for the code which is currently running in production (basically a hotfix). So, I had to switch to my latest master, do the necessary changes and set it to the staging environment. But the staging environment is already populated with code for the new release which is yet to come.</p>
  
  <p>So, should I have two different staging environments,</p>
  
  <ol>
  <li>one for the new release and </li>
  <li>the other for hotfixes</li>
  </ol>
  
  <p>But reading through the blogs and documents on git, I did not find anyone doing so.</p>
  
  <p>How should I proceed?</p>