Skip to content

Command Palette

Search for a command to run...

6 min read

How Git Works Internally: Objects, Branches & the .git Directory

GitDeveloper ToolsBehind the Scenes

Git is a content-addressable filesystem — a key-value store where the SHA-1 hash of content becomes its identifier. The entire database lives in the hidden .git directory, storing everything as four object types: blobs (file content), trees (directory structure), commits (snapshots), and tags (named markers).

When you git add, file content is hashed into a blob and tracked in the staging index. When you git commit, the staging area becomes a tree object, which gets wrapped with metadata into a commit object, and the branch ref updates to point to it. A branch is literally a 41-byte text file containing a commit SHA — creating one is just writing a file. Pack files with delta compression keep repositories efficient despite storing full snapshots.

Understanding this model demystifies merge conflicts, detached HEAD states, and makes recovering lost commits trivial instead of terrifying.

Read full article on dev.to