Why wouldn't you store all the environment-specific config files in the main repo? Then, either during build or deployment process, you would take whatever configuration file is relevant. There are lot of different ways of implementing it, depending onyour build/deployment tool, but any way you do it I think it is be better than having it in branches.
My opinion is that you definitely want the config files to be stored in version control and deployed using a deployment tool, so you wouldn't have old versions hanging around due to lack of updates or manual error.
Usually there exists a folder structure like
/configurations/test/properties/
/configurations/prod/properties/
and the deployment tool uses them per environment as requested. Any confidental information such as passwords can be either hashed or encypted: tehcnologies like ansible vault support this directly.