This tutorial takes a deep dive into the internals of everyone's favorite source control system, git. It assumes that you are familiar with using git (e.g. commits, branches, tags), and we'll take a look at the internals of git and how it works, and in particular, its file formats.
- git as a content-addressable store
We look at how git works at its lowest level, as a content-addressable store. - How git implements source control
We look at how git uses its content-addressable store to implement source control. - Packs
We look at how git compresses its content into packs. - Delta objects
We look at how git compresses its content even more by using deltas. - Pack indexes
We look at how git uses an index to speed up access into packs. - Retrieving objects from a repo
We look at how to retrieve an arbitrary object from a repo, whether it be a loose object or in a pack. - Delta objects in other packs
We look at reconstructing pack objects that have a base object in another pack. - The staging index
We look at how git stores what's currently in the staging index. - git references
We look at how git manages references (refs). - git logs
We look at how git maintains a history of ref activity. - Wrapping up
We beef up the scripts, and add code to verify what they're doing.
Have your say










I am a 
