Branching is a strategy where every environment/infrastructure variant is another branch (development/stage/production, etc.)
- DON'T. Just don't.
If you really need to do it - JUST DO NOT!
If you would like some advantages:
- Difficult environments comparison makes code unreadable to hostile coworkers
- Cherrypicking is very good, just like with real cherries
- Wrong merge results can keep you up at night so more time to read