Another repo is just for the pages that make up the site, so index.html, about.html, etc. I can give users github access to that repo without them having access to the main site repo.
Another repo is just for the posts that make up the site.
When I want to build the site, a small script pulls the 3 repos, combines them into a build directory and then has jekyll build the entire process into that. After, the _site folder is synced to an AWS s3 bucket.
I also have ability to only build portions of the site by not combining the pages or posts into the build. I actually have another repo for generated content that goes into a collection folder which works similarly.