title: Organizing git branches
body: <p>I have a large-ish project that I'm working on which uses git as the VCS.  At any given time I'm working on implementing a few features/bugfixes, etc.  For any given feature/bug, It would be nice to create a hierarchy of branches -- e.g.</p>
  
  <pre><code>$ git branch
    feature1
         sub-branch1
         sub-branch2
         sub-branch3
    feature2
         sub-brancha
        *sub-branchb  #&lt;--currently checked out
         sub-branchc
    bugfix1
         sub-branch-foo
  
  $ git checkout sub-brancha
  $ git branch
    feature1
         sub-branch1
         sub-branch2
         sub-branch3
    feature2
        *sub-brancha  #&lt;--currently checked out
         sub-branchb  
         sub-branchc
    bugfix1
         sub-branch-foo
  </code></pre>
  
  <p>Is it possible to do something like this, or do I need to adopt a more primitive naming scheme?</p>
  
  <p><strong>EDIT</strong> </p>
  
  <p>To make it slightly more concrete what I'm looking for, if feature1 is a git branch, then in the example above, sub-branch1 would all have been created by <code>git checkout -b sub-branch1</code> from the <code>feature1</code> branch (which is branched from master). e.g.:</p>
  
  <pre><code>$ git checkout master
  $ git checkout -b feature1
  $ git checkout -b testing
  $ git branch
  master
     feature1
       *testing
  $ git checkout master
  $ git checkout -b feature2
  $ git branch
  master
     feature1
        testing
    *feature2
  </code></pre>
  
  <p>Having git branch simply organize branches by where they came from (with a little extra indentation) is probably good enough for my purposes ... Although super bonus points if I can have:</p>
  
  <pre><code>$ git branch
    feature1
         testing
    feature2
         testing
    bugfix1
         sub-branch-foo
  </code></pre>
  
  <p>With some way to manage the name-conflict between "feature1/testing" and "feature2/testing"</p>