I just got around creating topic branches for my project\'s unfinished features, managed by Git. They are all very self-contained in such a way, that one topic branch doesn\
Lets say you have branch master and bunch of branches: feature1, feature2, feature3...
$ git checkout feature1
$ git branch master-with-feature1
$ git checkout master-with-feature1
$ git merge master
Any time you make any changes to master or feature1 you can checkout to master-with-feature1 and merge them.