Git is a distributed version control system that records the history of changes to a set of files, most often source code. Every developer clones a full copy of the repository including its complete history, so committing, branching, and inspecting past versions all happen locally without contacting a server. A commit stores a snapshot plus a pointer to its parent, which is what makes history traversable and reverts cheap. Branches are lightweight pointers, so teams create one per feature or fix and merge it back when the work is done. Hosting services add collaboration on top of the core tool: GitHub and GitLab provide pull or merge requests, code review, issue tracking, and pipelines that run on every push. Nearly every modern development workflow assumes Git, and AI coding tools depend on it too, since a clean commit history is what lets a developer inspect and undo machine-written changes. The common pitfall is treating Git as a backup service. Long-lived branches drift far from the main line and produce painful merge conflicts, and secrets such as API keys stay in history even after they are deleted from the working tree, which is why teams keep branches short and scan commits before pushing.