This document provides an overview of version control systems and demonstrates how to use the version control system Git. It begins by explaining why version control is useful, especially for software projects. It then demonstrates the basic commands and workflows for initializing a Git repository, tracking files, committing changes, and pushing commits to a remote repository like GitHub. The document also covers branching, merging, resolving conflicts, and undoing changes. It provides explanations for various Git commands like add, commit, status, log, diff, reset, checkout, revert, fetch and more.