This document provides an overview of Git internals and data structures including blobs, trees, commits and refs. It demonstrates how Git objects are stored and referenced in the Git database. Various Git commands are shown such as add, commit, branch, checkout, merge, reset, rebase and reflog. The document explains the relationships between blobs, trees, commits and branches during normal workflows as well as examples of fast-forward merges, rebases and resetting.