Update: you will not be able to replicate this environment using git clone, so I don't think this is a good approach
I figured out a way to do this.
In my case, I needed to synchronize the project with heroku and GitHub (as my public repo).
But I was not interested in sharing some files with private information in a public repository.
Usually a simple project would have the following folder structure
Project folder (remote heroku)
- .git
- .gitignore
- (folders and files)
What I did was add one more level, and in it create another git repository, with a .gitignore
that would omit some files from my project.
Project public (remote GitHub)
- .git
- .gitignore
- Project folder (remote heroku)
- .git
- .gitignore
- (folders and files)
So this is not a git repository with two remote repositories with different .gitignore
s.
There are two different repositories.
On the innermost I only exclude the files generated by the IDE and some files generated at runtime.
At the outermost level, I exclude all files that cannot be make public.