We've been using git at work for a greenfield project and, so far, this has worked for us. It could be a useful template to get another team started. We have gotten rid of the name 'master', which is only a convention anyway, and instead are using a few permanent branches:

  • production (only stable code which gets deployed to production goes there. The only branch to be merged in, EVER, is 'stable')
  • stable (only stable code which goes to the staging environment goes there. The only branch to be merged in, EVER, is 'integration'))
  • integration (code from other branches goes here - tests should, of course, pass before merging in.)
And then we have, of course, other branches for work in progress and other stuff. we've used these prefixes to help with the naming, and called this the 'buffers' convention (look at the first letters - BFRS):
  • bug_
  • feature_
  • refactor_
  • spike_
How have you organized your git repositories?