Each time there's a push, only the changed files would appear in the repo. Both the private and public repos would be active simultaneously in order to do a build. In other words, your project would have two folders with git active, and the build would combine those folders as part of the CI/CD pipeline. Every now and then the process of taking all of the current master branch and moving it offline would happen again. In this way, you'd never have a public repo that would have anything more than a few files in it.
In this scenario, the only things that are being hosted publicly are tiny bits of source code that are changed in order to keep the base updating. And even then, on a regular basis they would be deleted.
tl;dr: simply because you have to take down a repo doesn't mean you have to take down a location for publicly developing F/OSS software. </speculation>