I have 5 branches of one system - lets call them master, London, Birmingham, Manchester and demo. These differ in only a configuration file and each has its own set of graphics files.
When I do some development, I create a temp branch from master, called after the feature, and work on that. When ready to merge I checkout master, and git merge feature to bring in my work. That appears to work just fine.
Now I need to get my changes into the other Branches, without losing the differences between then that are there already. How can I do that? I have been having no end of problems with Birmingham geting London's graphics, and with conflicts within the configuration file.
When the branch is finally correct, I push it up to a depot, and pull each Branch down to a linux box for final testing, From there the release into production is using rsync (set to ignore the .git repository itself). This phase works just fine also.
I am the only developer at the moment, but I need to get the process solid before inviting assistance :)