title: Git Discipline: combining multiple feature branches, but still keeping them separate?
body: <p>The current project I'm working on, I am trying to explore a bunch of different ideas which usually manifest themselves as a bunch of feature branches. The features I'm working on are generally orthogonal to one another, so there are times when I want to merge all of these features (or some subset of the features) and test them out together.</p>
  
  <p>So far my workflow has been this -- I have branches <code>featureA</code>, <code>featureB</code>, <code>featureC</code> and I'll have a branch called <code>featureA_featureB</code> and then another one like <code>featureA_featureB_featureC</code>, etc. </p>
  
  <p>I am having 2 problems: </p>
  
  <ul>
  <li>The naming scheme is terribly cumbersome and generates a lot of branch clutter</li>
  <li>Since I'm testing the branch with the features that are merged together, I tend to accidentally commit to the combination branch rather than the individual branch. So for example, I think of an improvement to <code>featureC</code>, but since I'm in the <code>featureA_featureC</code> branch, I accidentally commit to this branch instead (I really need to stop using <code>git commit -a</code>). Then I have to cherry pick the commit or do some other crazy stuff to get the commit to the right place.</li>
  <li>I just feel like there's some better way to accomplish this... </li>
  </ul>
  
  <p>Thanks in advance!</p>