# 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

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

- `git clone --mirror`
- GitHub API or CLI
- `python-github-backup` script
- Zenodo & figshare integrations

### 7.2. Alternative forges

- GitLab: https://gitlab.com
- Bitbucket: https://bitbucket.org
- Codeberg: https://codeberg.org
  - Many other instances available
- Sourcehut: https://sr.ht
- Azure DevOps

### 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