Yeah, I'm used to NixOS — however, having to edit the config (instead of e.g. a package manager) is a common pain point I see when others use NixOS, and it often leads to them switching distros.
What network topology do you have? My method only assumes server→laptop connectivity (laptop→server and laptop→repo are implied). If server→laptop is unavailable, but you can install Git in general on the server, you could forward the repo through SSH. If Git cannot be installed server-side at all, this is more difficult, and rsync would be the best method I know of.
Detach the laptop's head, then git clone from it over SSH on your build server. When you're done, git push will update your laptop's branches, then you can git push origin the relevant branches on your laptop.
Maybe store project-related stuff in a subdirectory of the project repo, and make everyone on the team get that so I can finally read the other guy's code.
The point is that many programs completely ignore .cache's existence — when programs do actually use it, adding a backup exception is trivial, but having to manually find what's actually cache in .config (or, even worse, finding one SQLite database with the config and cache) complicates it.
bsdtar xf
(from nixpkgs#libarchive) and it'll figure it out.