Do you find that making branches based on an environment works well? Having attempted that in the past, I gave up as it's almost never actually the case that the branch matches the environment, scaling towards chaos the more developers you have working on the same repository/environment.