This document provides an overview of Git and some common Git commands. It begins with an introduction to distributed version control and how Git stores data as objects in a repository. The document then covers some important Git commands for adding, committing, checking status and differences, viewing logs and history, tagging, branching, merging, rebasing, searching files, managing remotes and pushing/pulling changes. It also discusses resolving conflicts, interactive rebasing, stashing work, and using blame to view change history on files. The goal is to give the reader a high-level understanding of Git's architecture and data model as well as expose them to some of the most commonly used commands for basic version control workflows.