The bare minimum for syncing Git repos

Skip the cloud: the internet claims you can sync your files with a home folder, a tiny server, or even email

TLDR: A developer synced personal files by using Git’s own tools and a simple home folder instead of a cloud site. Comments exploded: purists tout peer-to-peer and even email, pragmatists prefer tiny home servers or self-hosted sites, and nitpickers corrected the rules—proving you’ve got options.

A dev ditched the big-box website and discovered the “bare” truth: you can sync your files by pointing Git (a version control tool that tracks changes) at a simple folder on a drive at home, then push and pull over your own network. Cue the crowd going full debate mode. The decentralization diehards showed up first, shouting that Git was built for this all along. One summed it up with a mic drop: you don’t even need a central box—just connect your machines (shoutout to Tailscale, a tool that links your devices like a private group chat). Another old-schooler rolled in with retro swagger: email your changes like it’s 2005, and yes, people still do that.

Meanwhile, the practical camp flexed their cozy setups: tiny home servers, a no-fuss web view, and just enough permissions to keep the chaos out. Others wanted some polish, moving to self-hosted Forgejo for a friendly website without the corporate cloud. Then came the pedants with a twist: you actually can push to a non-bare repo—just not to the branch currently open—sparking a mini “well actually” storm. Jokes flew about grandpas emailing patches and Tailscale being the family WhatsApp for computers. Bottom line: fewer clouds, more control, and maximum opinions.

Key Points

  • The author wants to sync personal Git repositories across devices without relying on cloud forges like GitHub.
  • Git’s .git directory contains the entire repository state; copying it with cp/rsync is risky for ongoing syncs.
  • Using Git push/pull with a remote that points to a local or SSH-accessible path provides safe synchronization.
  • Bare repositories (history only) are suitable push targets; non-bare repositories should not receive pushes.
  • Implementation uses a home desktop with an external drive hosting bare repos, with devices accessing it locally or via SSH.

Hottest takes

"The entire design of git was intended to be decentralized" — donatj
"You know you can send commit by email ?" — _ache_
"You can push to a folder with a non-bare Git repo, it’s just that you can’t push the same branch which it has checked out." — jonathanlydall
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.