I'm setting up a custom built e-commerce project. One site will be for the UK and another inside another country, with the possibility of adding more at a later date. However, the sites have different integrations e.g. payment systems, warehousing etc. I want to keep to the databases separate as the sites will be running on separate servers.
The issue i'm having is how to manage the sites. Ideally i'd like to have a master branch. So if say, i want to update the header of the website i can make the change, then roll it out to all websites. Rather than having to make the same change multiple times. However, some of the view logic might be different due to the integrations. So i need to keep the code separate. Should i create separate branches for each country/site? Then branch off of the master branch when i want to make a change to all sites? Also, each site will need to have a staging & live site. So in my head it looks like something like this:
Master
Branch -> (Quick template change for all sites)
UK
Staging
Live
Country Two
Staging
Live
Country Three
Staging
Live
Or do i keep the projects separate in the repo? So have Main project, then create forks from that main repo?
I hope this makes sense, any help would be appreciated.