3.3.1. How does Track Files?#
’s Data Model
Blobs (Binary Large Objects) are used to store the contents of files.
Trees represent directories and contain pointers to blobs (files) and other trees (subdirectories).
Commits are snapshots of the entire repository at a given point in time.
Tracking Changes
Working Directory is where you make changes to your files (recall, works asynchronically).
Staging Area is a file (usually located in .git/index) that stores information about what will go into your next commit.
Repository (History) When you commit changes, creates a new commit object that points to the current state of the staging area.
Efficient Storage
Delta Compression is used by to store the differences between file versions.
Packfiles are used by to store objects in a compressed format.