title: How to multitask with Git
body: <p>I work on a lot of ColdFusion projects that are housed on a single web server. I've recently been '<a href="https://stackoverflow.com/questions/9847933/how-do-you-use-coldfusion-builder-2-in-a-team-environment-using-a-common-develop">shown the light</a>' by others on SO and want to move to a developer machine / test machine / production machine development methodology.</p>
  
  <p>I'm now trying to reconcile how best to deal with the way I (and others in our institution) are 'forced' to work...</p>
  
  <p>Let's say our webserver is set up like this</p>
  
  <pre><code>-Root
  --Project 1
  --Project 2
  --Project 3
  --Framework Files
  </code></pre>
  
  <p>Let's also say that we have a central git repository set up and that I have a clone of the root that I'm working with. All other developers in the group also have their own clone of the repository.</p>
  
  <p>So -- It's Monday morning and I've started work on Project 1. I'm in the middle of an estimated 4 hour feature request and one of my eight different bosses comes in and tells me that there is a critical problem that needs to be fixed in Project 2. Monday is off to a great start.</p>
  
  <p>I need to fix Project 2 STAT, but I'm not done with the feature request for Project 1 yet. If I fix in Project 2, then commit to my local repository to push to test... it's going to include the unfinished feature in P1... which is bad.</p>
  
  <p>If I extrapolate from <a href="http://hginit.com/05.html" rel="nofollow noreferrer">Joel Spolsky's Mercurial Init Architecture page</a>, is the solution to create a 'dev' clone of the repository for each subproject? To commit to those, then commit to main local repository, then to the main shared repository?</p>
  
  <p>Is there another concept in Git that I'm missing?</p>
  
  <p>Thanks all, Chris</p>