Alternative

To use Git you do not need to use Github.

  1. Easily exchanging changes with another user (syncing, sharing, fetching, pushing)
  2. Easily browsing changes (history, diffs, code navigation, review, discussion)

A lot of tutorials and articles focus on stuff like “GitHub is for hosting code”, but that misses the real engineering problems underneath.

Let’s go into these two, and what it takes to solve them without GitHub, and why GitHub is so sticky:


1. Easily Exchanging Changes with Another User

The pain:

Peer-to-peer?

In short:


2. Easily Browsing Changes

The pain:

The real value:


Can you exchange and review code changes without GitHub?


Summary Table of Realistic Options

Problem “DIY” Solution(s) GitHub/GitLab/etc Solution
Share code changes easily Public git server w/ SSH/HTTP, p2p protocols, email Just use “push” to remote
Browse/view code and history Run a web Git viewer (e.g. cgit, Gitea, GitLab) Browse on web instantly
Review/discuss/approve changes Email patches; in-person meeting; home-grown workflow Pull requests, comments, etc
Notifications, visibility, user management Custom scripts, mailing lists, manual user handling Web UI, automated

Do You Need GitHub?


If you’re looking for minimal or privacy-oriented setups:

Summary