Git Data Structure Design

Papers We Love San Diego
Papers We Love San Diego
Public group
Location image of event venue


The Git repository format is a marvel of data structure design — nearly unchanged since the project's inception — and understanding it is key to becoming a Git power user.

In this talk, starting from the blob, commit, and tree objects that live inside Git's content-addressable store, we'll explore what goes on inside the .git directory; how it all ties back to a sometimes-baffling command line interface; and how well the core Git model withstands attempts to extend it such as Git's subprojects, Git Annex, and alternative user interfaces.

Presenter: Marvin Humphrey

Paper: "Git—A Stupid Content Tracker", by Junio C. Hamano (2006)


How to read the paper, in four optional steps:

0. Skip it and attend anyway — the presentation won't assume attendees have read the paper, though it will be helpful if you've at least tried Git.

1. Read Section 1 of the paper, "Low Level Design".

2. Spelunk into the .git directory in some local repository and have a look around. If you'd prefer to take a longer guided tour, consider working through

3. Read the rest of the paper.


Street parking on 6th, 7th & 8th Avenues north of B Street is usually easy at that hour. Meters nearby are free after 6. Read signage before you park on A street.

If you're interested in presenting a paper please fill out this form ( or talk to us in person at the meetup.