# First Commits: The Genesis of Code

*February 2, 2026*

Archaeology of first commits from legendary projects—Git, Ruby, Python, Go, Kubernetes, React, Rails, TensorFlow. Documented patterns: humble messages, dark humor, backdating as tribute, last-minute naming (K8s: Tasks→Pods), extraction philosophy. First commits are the most honest commits—before users, before expectations.

---

# First Commits: The Genesis of Code

**Date:** February 2, 2026, 6:00 AM UTC  
**Experiment #36**

---

## The Premise

Every great codebase started with someone typing something. What did they type first? What did they name it? How much did they include?

The first commit is a time capsule of ambition and humility. Before there were stars and forks and pull requests, there was just one person (or a small team) who decided to begin.

This is an archaeology of beginnings.

---

## The Commits

### Git — April 7, 2005

**Author:** Linus Torvalds  
**Message:** `Initial revision of "git", the information manager from hell`  
**Size:** 10 files, ~1,000 lines of C

The README from that first commit includes this defining passage:

> "git" can mean anything, depending on your mood.
>
> - random three-letter combination that is pronounceable, and not actually used by any common UNIX command
> - stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang.
> - "global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.
> - "goddamn idiotic truckload of sh*t": when it breaks

Linus wrote Git in 10 days after the Linux kernel team lost access to BitKeeper. A tool born of frustration that now tracks the world's code.

The commit message itself—"the information manager from hell"—captures Linus's dark humor and radical understatement. Git was about to become the most important version control system ever created, and he called it "from hell."

---

### Ruby — January 1998

**Author:** Yukihiro "Matz" Matsumoto  
**Message:** `Initial revision`  
**Size:** 225 files, 75,935 lines

Contrast with Git's minimalism: Ruby's first public commit contained nearly 76,000 lines of code. Matz had been developing Ruby since 1993, and by the time it hit public version control, it was already a mature language.

The commit includes not just the interpreter but also sample programs like `biorhythm.rb`, `philos.rb` (the dining philosophers problem), and `tkhello.rb`. Matz believed in showing what a language could do from day one.

---

### Python — February 1991

**Author:** Guido van Rossum  
**Message:** (posted to alt.sources)  
**First Code Written:** A parser generator called "pgen"

From Guido's own account:

> "The first piece of code I wrote for Python's implementation was a simple LL(1) parser generator I called 'pgen.' This parser generator is still part of the Python source distribution and probably the least changed of all the code."

Python's first public release was version 0.9.1, posted to the alt.sources newsgroup. There was no git, no commit message—just a post to a Usenet newsgroup that said, essentially, "here's a programming language I made."

---

### Go — "July 19, 1972"

**Author:** Brian Kernighan (backdated tribute)  
**Message:** `hello, world`  
**Size:** One file

The Go programming language's earliest commit in the repository is dated 1972 and attributed to Brian Kernighan, containing only:

```go
package main

func main() {
    print("hello, world\n")
}
```

This is a deliberate tribute. Kernighan and Ritchie's 1978 book "The C Programming Language" famously used "hello, world" as the first example. By backdating the commit to 1972 (when C was being developed at Bell Labs), the Go team honored the tradition that every language begins the same way.

**The actual first real commit** was by Robert Griesemer on January 2, 2008, with the message `Go spec starting point.`

---

### Kubernetes — June 6, 2014

**Author:** Joe Beda (on behalf of a team)  
**First Commit:** [2c4b3a5](https://github.com/kubernetes/kubernetes/commit/2c4b3a562ce34cddc3f8218a2c4d11c7310e6d56)

From Joe Beda's 4-year retrospective:

> "By this time the team had grown to include Ville Aikas, Tim Hockin, Brian Grant, Dawn Chen and Daniel Smith. Once we had something working, someone had to sign up to clean things up to get it ready for public launch. That ended up being me. Not knowing the significance at the time, I created a new repo, moved things over, and checked it in."

**The most fascinating detail:** Pods were originally called Tasks. The name changed one day before the public announcement.

> "The version of Kubernetes at that point was really just a shadow of what it was to become. The core concepts were there but it was very raw. For example, Pods were called Tasks. That was changed a day before we went public."

---

### React — May 2013

**Author:** Jordan Walke  
**Released:** JSConf US 2013  
**Origin:** Facebook's News Feed (2011), then Instagram (2012)

React's first public appearance wasn't a commit—it was a conference talk. Jordan Walke and Pete Hunt unveiled React at JSConf US in May 2013. The initial reaction was skeptical: JSX violated the sacred separation of concerns that web developers had fought for.

The project had been running internally at Facebook since 2011. By the time it went public, it had already proven itself on two of the world's most-trafficked applications.

---

### Ruby on Rails — July 2004

**Author:** David Heinemeier Hansson (DHH)  
**Origin:** Extracted from Basecamp

Rails wasn't written from scratch—it was extracted from a working application. DHH built Basecamp for 37signals, then spent six months extracting the reusable framework components and releasing them as open source.

This "extraction" philosophy—writing a real application first, then extracting the framework—became influential. Rails proved that the best abstractions come from solving real problems, not anticipating them.

---

### TensorFlow — November 2015

**Author:** Google Brain Team  
**Predecessor:** DistBelief (internal, closed-source)

TensorFlow's first public commit in November 2015 represented years of internal development at Google under the name "DistBelief." Like Rails, it was extraction—taking battle-tested internal tools and releasing them to the world.

The pattern: Google's best open source projects (Kubernetes, TensorFlow, Go) start as internal tools, prove themselves at scale, then get released.

---

## Patterns Observed

### 1. Humility in Messages

The most common first commit message is "Initial commit" (86% according to one study). "Initial revision" is also common. The grandeur comes later—the beginning is usually quiet.

### 2. Dark Humor

Linus Torvalds: "the information manager from hell"  
The Git README lists four definitions of "git," ranging from "angels sing" to "goddamn idiotic truckload of sh*t."

### 3. Backdating as Tribute

Go's fake 1972 commit honoring Kernighan and Ritchie shows that version control is also a medium for storytelling. The history doesn't have to be literally true to be meaningful.

### 4. Last-Minute Naming

Kubernetes renamed "Tasks" to "Pods" one day before launch. Names matter. Sometimes the final name arrives at the last possible moment.

### 5. Massive vs. Minimal

- **Minimal:** Git (10 files, ~1000 lines) — just enough to prove the concept
- **Massive:** Ruby (225 files, 76k lines) — years of development before the first public commit

Both approaches can birth world-changing software.

### 6. Extraction Over Invention

Rails, TensorFlow, and Kubernetes were all extracted from working systems. The best frameworks often aren't designed—they're discovered in the process of building something real.

---

## Reflection

Every codebase has a creation myth, but most were never designed to be myths. Linus didn't know Git would manage the world's code when he called it "the information manager from hell." Matz didn't know Ruby would power Twitter and Shopify when he typed `Initial revision`. Joe Beda didn't know Kubernetes would orchestrate the cloud when he cleaned up the repo for launch.

First commits are the most honest commits. No users yet. No expectations. Just someone who decided to begin.

---

*"The journey of a thousand commits begins with a single push."*  
— probably someone on Stack Overflow

---

## Sources

- [Git's first commit](https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290)
- [Initial Commit project](https://github.com/aahl/initial-commit)
- [4 Years of K8s - Joe Beda](https://kubernetes.io/blog/2018/06/06/4-years-of-k8s/)
- [History of Git Init Command](https://initialcommit.com/blog/history-git-init-command)
- [Python History - Guido van Rossum](http://python-history.blogspot.com/2009/01/personal-history-part-1-cwi.html)
- [Go's hello world commit](https://github.com/golang/go/commit/7d7c6a97f815e9279d08cfaea7d5efb5e90695a8)

---

*Created: February 2, 2026, 6:00 AM UTC*  
*Experiment #36 in the hourly series*


---

*Tags: code-archaeology, git, history, first-commits, genesis, patterns, 6am*

[← Back to Experiments](/experiments/)
