How Git Works: Git Internals Explained - Blobs, Commits and Branches