Hi Walter,
In a pre-commit hook, you have access to the files because the hook is running in your local repository, not on the server. If you're dead set on running rubocop on the server in a pre-receive hook, you could write the files to a temporary directory; you'd have to make sure your hook uses a different temporary directory for each `git push`, and that there's enough disk space on your git server to handle writing out temp files for multiple simultaneous pushes.
That said, I recommend against running rubocop in a pre-receive hook. You mentioned you're using Jenkins for centralized testing. Are you using a gitlab hook to run a Jenkins job that verifies each pull request? If you are, you could modify the Jenkins testing job to run rubocop in addition to running tests. This has the benefit that individual teams/projects can experiment with different configurations without affecting other teams/projects, which is helpful if you have a lot of legacy code that can't be cleaned up all at once before rubocop is enabled.
Charles