Git
A distributed version control system.
Git tracks changes to source code through a content-addressed object store and a directed acyclic graph of commits. Every clone is a full repository with complete history, which makes branching cheap and enables offline work and arbitrary distributed workflows. The four object types — blob (file content), tree (directory), commit (snapshot with metadata), and tag (named pointer) — are simple enough that learning git internals is an unusually rewarding investment of time.
Linus Torvalds wrote the initial implementation in April 2005 after the Linux kernel project lost access to its previous proprietary version-control system, BitKeeper. Junio Hamano took over maintenance shortly after and has remained the lead maintainer since. The implementation is mostly C, with a substantial set of Perl, Python, and shell scripts for "porcelain" commands that compose the lower-level "plumbing" operations.
Git is now the dominant version control system in software development. Forges such as GitHub, GitLab, Bitbucket, Codeberg, and self-hosted Gitea, Forgejo, and Gerrit are built on it. The Git wire protocol has been extended over time (smart HTTP, partial clone, sparse checkout, protocol v2) without breaking backward compatibility. Git is GPL-2.0 only.
Install
Debian/Ubuntu: sudo apt install git Fedora/RHEL: sudo dnf install git Arch: sudo pacman -S git macOS: brew install git
Authors
- Linus Torvalds (creator)
- Junio Hamano (long-term maintainer)