Git
Links
TODO Understanding Git Conceptually
TODO GitHub - pluralsight/git-internals-pdf: PDF on Git Internals
Git Internals
Content of .git folder
Git stores snapshots (exact content of the files) at the point of a commit.
ls .git
The content is stored in the objects sub-directory. There are 4 kinds of objects:
- blob
- used for storing the contents of a single file
- tree
- contains references to other blobs or subtrees
- commit
- contains reference to another tree object and some other information (author, committer etc.)
- tag
- Another reference to a commit object
Git Branching Models
A successful Git branching model » nvie.com
VFS for Git
VFS for Git is a virtualized filesystem used to bypass assumptions about repository size, allowing Git repositories to scale up to large repositories.
With GVFS, an initial clone downloads a set of pack-files containing only commits and trees. These objects are sufficient for generating a view of the working directory, and examining the commit history with git log.
GVFS allows dynamically downloading objects as needed.