here is my workflow. I have master as the most complete version of the program. If I want to add a feature I'll create a branch named with -feat as a suffix. as bugs come up, I'll create new branches from the feature with a -bug suffix. as bugs get solved they get merged back into the parent feature. If the feature branch has no bugs it can be merged back into master.
The problem is how do I track how branches are related. There doesn't seem to be a command to tell me what the last forked branch was. I also want to know what bug branches belong to a feature. (If it has no bugs it can be merged to master)
I could add a note in the commit log. forked from .... However I think this would cause it's own complications.