I'm having problems with this situation:
I have a base repository that contains a 'docs', 'layout', 'pub' and 'sql' folder, there is just a blank 'index.html' in the 'docs' and 'layout' folder. In the 'pub' folder I have Joomla installed.
When I have a new client I make his directory and init a repository, then I add a remote named 'base' pointing to the base bare repository (the one with Joomla), fetch it, checkout base/master and then do 'checkout -b master' to create the master branch from the base's master branch. Then I make a 'clone --bare' of the client's repo in my local server and clone from it in local workstations. We save docs when needed, the designer makes the layout then it's commited and pushed to the client's bare repo. We always do a 'rebase origin/master' before pushing, to make sure the local repo is up to date.
So when the layout is done and pushed, I pull it and start to make the Joomla template. So I make lots of commits, then I realise that I have to make changes in a Joomla component. Ok, I change the component, commit and continue making the template, commit, ...
Now I want to bring all the Joomla component's commits to the 'base repo' because I want all my clients to have the same changes. When I tried @jleedev solution (rebasing), all my client's commits went to the top, rewriting it's SHA's that were already in the client's bare repo.
The basic idea is to have the commits of files in the 'docs', 'layout', 'pub/templates/client_template' folder and maybe some Joomla hack just for that client unique to the client's repo, but all other commits I would like to have in the 'base' Joomla repo too so I can merge into all clients repos.
Any ideas? Maybe a different organization?
Thanks in advance!