I have a website that i keep in git. It is a asp.net webforms website (but that is probably unimportant to this question).
The website is used by our customer for 2 (in the future 4) websites. Most of the functionality is shared. But a few things like web.config and a folder with css is unique for each website.
Here is a simplified version of the code
|--BackOffice | \--UI |--BackOffice.UI | \--WebControls |--BackOfficeTests |--Deployment | \--db |--BusinessLogicLayer | |--bin | |--obj | \--Properties |--scripts |--Website | |--admin | |--App_Browsers | |--App_Code | |--App_Data | |--Styles | |--web.config
What would a good structure for this be in Git?
For instance the BackOffice code would be completely shared. The Website would be shared except for the Styles folder and the web.config file.
Do you have a good suggestion for a structure that does not make merging and branching too long haired?
I have tried to make a structure like so:
Master |--Site1 |--Site2
But I foresee too much cherrypicking when moving code from one branch to another Would a submodule be ok or would it complicate things?
EDIT: My really big problem is that I want to deploy directly from my git repo. And if I leave in these directories / files they will be merged during merge, unless i do some complicated stuff (then I cant let everybody on the team do this). Or I will have to ignore these files and get them from somewhere else...