There are many, many ways to do this with branching and deployment strageties but the key is to identify exactly what you want to achieve and then look at the different routes.
How many different clients and/or environments are you looking at, should you be trying to run them all from the same master or would it be better to run them all from their own branches,what servers are you using, what's their distribution, etc.?
In our case we have 5 different environments each with its own Db. We have 4 branches from master (master being production environment).
Each environment has its own build and release pipeline, pipelines contain variables which allow us to change config settings and turn features on and off which is down to how we write the code to enable that.
Can use something like Redgate toolkit to clone the Db between environments, very handy for masking and trim downs when you need a copy of production Db to for your dev/test environment.
I am a beginner to EpiServer just playing around with existing code and minor customization. We have a .Net product which uses Episerver CMS. As the customer request customization 20% of the system is customized, the code branched out into seperate versions. Now its been decided we merge everything into one Trunk and the customization should be managed from with in CMS. or if possible to have it in an environment specific deployment process. Like if the environment is X then include this field, else don't.
Currently considering one branch as master and trying to merge one page at a time and make it work.
I know it is a broad topic. Basically I am looking for direction, if someone already went down this path on,
Any Idea or direction is appreciated.