From the information you pass on the question, what you seem to need is submodules of a parent project.
In case your main project will be a superproject will have several sub-modules and each client customization will be a sub-module, so the changes of these customizations will be "isolated" within each sub-module, being replicable throughout your repository. This will isolate the changes so that for each customer, you can generate a different end product.
To summarize, the concept of superproject, according to git is:
Sometimes developers want to get a combination of subdirectories of a large project, depending on which team they are on. This is common if you are coming from CVS or Subversion, where you define a module or a collection of subdirectories, and you want to maintain this kind of workflow.
A good way to do this in Git is to make each subfolder a separate Git repository and then create a repository for a parent project that contains multiple submodules. The advantage of this way is that you can more specifically define the relationships between projects with tags and branches in the parent project.
Do they all use the same code base? If so, maybe submodule strategy would be best, no?
– Felipe Avelar
I think the recommended would be something like Gitflow suggests https://medium.com/trainingcenter/utilizando-o-fluxo-git-flow-e63d5e0d5e04
– hugocsl
@hugocsl as I understand it, they kind of already use git-flow, only they want to create "subprojects" in which they descend from the main project and it’s customized for each client
– Felipe Avelar
Exactly @Felipeavelar, that’s the idea and answering your question, yes all use the same basis, changes for each customer are small, especially in the way information is displayed
– José Henrique Luckmann