Git without GitHub

Jez Cope

3 September 2025

1. Overview

  1. Why bother with alternatives
  2. What's possible
  3. Strategies

1.1. Please note…

This workshop is in beta!

Any and all feedback welcome (but be kind ๐Ÿ˜…)

We are not here to bash anyone's choice of tool, workflow, knowledge, experience, etc

We are all learning: please be generous & curious

1.2. Recurse Center's 4 rules

  1. No well-actually's
  2. No feigned surprise
  3. No backseat driving
  4. No subtle -isms

https://www.recurse.com/social-rules

1.3. Icebreaker

Your name

Your favourite comfort food

One thing you hope to learn today

2. Why consider alternatives to GitHub?

2.1. Monocultures are fragile

2.2. Git is distributed by design

2.3. It's good to have backup options

3. A brief (and probably wrong) history of (mostly) open source version control

PCR-896.jpg

PCR-896-routing.jpg

First_Computer_Bug_1945.jpg

SAR-L-1D-03.jpg

Images: Virtual AGC Document Library/Wikimedia

3.1. In the beginning there was Unix

Shared access to files

But what if two people
edit the same file
at the same time

3.2. 1982: Revision Control System (RCS)

Works through file locking:
check out -> edit -> check in

Per-file history (no security)

No concept of a "repository"

3.3. 1986: Concurrent Version System (CVS)

A front-end to RCS

Server/client model

Repositories!

3.4. 2000: Subversion

Many improvements on CVS

Atomic commits

Branch and directory tracking

HTTP/WebDAV support

3.5. Mid-2000s: The Cambrian Explosion!

Distributed version control as we know it

Darcs released in 2003!
Bazaar, Git, Mercurial in 2005
Fossil in 2006

Every working copy is a first-class repository

Push from/pull to multiple repositories

Work offline & sync changes later

3.6. Forges

  • Sourceforge (CVS, later Subversion, Bazaar, Mercurial, Git)
  • GitHub, Gitorious, GitLab, Bitbucket and many more (during the Cambrian Explosion)
  • Network effects kick in, GitHub "wins"
  • Microsoft purchases GitHub, invests heavily in differentiating features (i.e. vendor lock-in)
  • …time passes…
  • GitHub marketed as "the worldโ€™s most widely adopted AI-powered developer platform" ๐Ÿ’€

4. Your experiences

5 minutes in breakout rooms

  • What do you use GitHub for?
    • If you don't use it: what do you use instead?
  • What features do you use?
  • What would you miss most/least if it wasn't there?

5. Strategies

5.1. Stick with it… for now

5.2. Replace wholesale

5.3. Replace piecemeal

5.4. Augment

5.5. Back to basics

5.6. All of the above?

  • Stick with it… for now
  • Replace wholesale
  • Replace piecemeal
  • Augment
  • Back to basics

6. Intermission

7. Options

7.1. Before you start: make backups

7.2. Alternative forges

7.3. Serverless or self-hosted

  • A shared folder!: Access via network share or SSH
  • Patches by email: git send-email
  • Static web site: Use git update-server-info & any web server
  • Gitolite: Minimal ssh-based setup
  • Radicle: Peer to peer
  • Forgejo, Gitea, Gogs, Kallithea: Full self-hostable web forges
  • Soft Serve: TUI-style minimalist server

7.4. Individual pieces

N.B. these lists are not authoritative or complete

7.4.1. Issue tracking

  • Minimal
    • Mailing lists
    • In-repository management e.g. trackdown
  • Open source
    • Bugzilla
    • Trac
    • Request Tracker
    • Redmine
  • Commercial
    • Jira
    • Trello

7.4.2. Code review

  • Minimal
    • Mailing lists
  • Open source
    • Gerrit
  • Commercial
    • Sooooo many…

7.4.3. Continuous Integration/Deployment

  • Minimal
    • Git pre-commit or post-commit hooks
  • Open source
    • Woodpecker CI
    • Circle CI
    • Jenkins
  • Commercial
    • Travis CI
    • Netlify
  • Honourable mention
    • Radicle CI

7.4.4. Static web hosting

  • Minimal
    • Your internet service provider
    • Your employer/institution
  • Open source
    • Apache httpd
    • nginx
    • lighttpd
  • Commercial
    • Sooooo many…

7.4.5. Project management

  • Minimal
    • Plain text files
    • Taskjuggler, todo.txt, org-mode
    • Whiteboard & sticky notes
  • Open source
    • Launchpad
    • Redmine
  • Commercial
    • Sooooo many…

7.4.6. Wiki

  • Minimal
    • Text files in version control
    • Tiddlywiki
  • Open source
    • Mediawiki
    • DokuWiki
    • MoinMoin
  • Commercial
    • Sooooo many…

8. Discussion

10 minutes in breakout rooms

9. A final thought

  • Easygit: Alternative frontend to git
  • Mercurial: Python-based, very stable and flexible, can clone/pull/push git repositories
  • Breezy: Python-based, successor to Bazaar, can work directly on git working copies
  • Fossil: Integrates many forge-features directly
  • Darcs: Haskell-based, stores patches instead of snapshots
  • Pijul: Rust-based, under development, also patch-focused