You already have a Git server
Basic Idea: Git over SSH and Local Paths
- Many commenters note that any SSH-accessible machine (or even a plain directory / NFS share) can act as a Git “server”; no special Git daemon or forge is required.
- Several admit they’d used Git for years without realizing SSH alone suffices, often because they assumed a dedicated Git server was needed.
- Others point out you can also push/pull via local paths (
/path/to/repo,file:///…) or shared drives.
Bare vs Non‑Bare Repositories
- Strong consensus that a central repo should usually be
git init --bare, avoiding the “can’t push to checked-out branch” problem and worktree conflicts. - The article’s
receive.denyCurrentBranch=updateInsteadapproach is criticized as brittle and only safe for narrow single-user workflows. - Bare repos are promoted for USB sticks, shared NFS mounts, and as central hubs with hooks that update a working tree or trigger deployments.
Git as Distributed, vs GitHub as Centralized
- Many stress that Git was designed as a distributed VCS where any clone can be a remote; you can pull from coworkers’ machines, pendrives, or local “hub” repos.
- There’s concern that newer developers equate “git = GitHub” and never learn offline or peer‑to‑peer workflows.
- Some see GitHub’s dominance as “centralizing” a decentralized tool, yet acknowledge its contribution in standardizing workflows and adding CI, issues, and UI.
Complexity, “Tribal Knowledge”, and Learning Curve
- Debate over whether concepts like bare repos and SSH remotes are “fundamentals” or obscure details.
- Critics argue Git’s UI is inconsistent, staging and bare/non‑bare distinctions are leaky abstractions, and docs are book‑length.
- Others counter that understanding your tools is part of professional practice, and Git’s power justifies some learning; reflog and local copies make experimentation safe.
Self‑Hosting and Tooling
- Lightweight self-hosting options discussed: gitolite,
git-shell-only users, cgit for read‑only web views, git daemon, and bare repos synced via Syncthing. - Heavier forges like Forgejo/Gitea are valued when you also need CI/CD, package repos, and PR workflows; bare+hooks are preferred for simple personal use.
- Some explore creative setups: etckeeper + git subtree to manage many machines, worktrees, multi-URL remotes, and hooks for tiny CI/deploy systems.
Practical Pitfalls and Security
- Warnings about:
- Syncing repos with Dropbox/OneDrive/iCloud leading to corruption.
- Exposing
.gitvia web roots leaking history and secrets. - Corporate rules (or confusion) blocking git installs or treating GitHub and git as the same.
- Granting SSH access vs using more constrained mechanisms (git-shell, sftp chroots).