Git
In-depth entryby Git project (Software Freedom Conservancy) · CLI tool · also known as git-scm
Distributed version control system that records snapshots of a project's history locally and synchronizes them with remotes such as GitHub, GitLab or a bare repository over SSH
Overview
Git is a distributed version control system created by Linus Torvalds in 2005 and maintained by Junio Hamano and a community of contributors, with the Software Freedom Conservancy as its fiscal home. Every clone holds the full history as a content-addressed object store, so committing, branching, diffing and searching history work offline and remotes are only needed to exchange changes. Branches are lightweight pointers, which makes feature branches, rebases and topic-based workflows cheap.
Git is the substrate for nearly all code hosting: GitHub, GitLab, Gitea and Forgejo are web services built around Git repositories, and self-hosted bare repositories reachable over SSH are a complete remote on their own. Tooling surrounds it at every level, from editor integrations and graphical clients to hooks that run linters or tests, large-file storage (Git LFS) for binary assets, and signing of commits and tags with GPG or SSH keys.
Beyond source code, Git is routinely used to version LaTeX manuscripts, analysis scripts, infrastructure configuration and documentation, giving researchers an audit trail and the ability to reproduce an exact state. The command-line interface is the reference; the official documentation includes the Pro Git book and the reference manual for every subcommand.
Its difficulties are well known: the command vocabulary is inconsistent and the conceptual model (index, working tree, detached HEAD, rebase versus merge) takes time to internalize; large binary files bloat repositories unless LFS is used; and history rewriting on shared branches causes trouble for collaborators. Monorepos at very large scale need additional tooling such as sparse checkout and partial clone.
Capabilities
- Full local history with offline commits, branches and diffs
- Lightweight branching, merging and rebasing
- Remotes over SSH, HTTPS and the Git protocol
- Hooks for automation on commit, push and receive
- Commit and tag signing with GPG or SSH keys
- Partial clone, sparse checkout and worktrees for large repositories
- Bisect, blame and log search for history forensics
- Submodules and Git LFS for dependencies and large files
Typical workflows
- Branch, commit and open a pull or merge request on a forge
- Push to a bare repository on a private server over SSH
- Version a LaTeX paper or analysis pipeline alongside its data manifests
- Find the commit that introduced a regression with bisect
Strengths
- Universal: every forge, editor and CI system supports it
- Works fully offline
- Cheap branching enables flexible workflows
- Free software under the GPL
Limitations
- Steep conceptual learning curve and inconsistent command design
- Poor handling of large binary files without LFS
- History rewriting on shared branches is error-prone
- Very large monorepos need extra tooling
Prerequisites
- Any OS; ships with Xcode Command Line Tools on macOS or via package managers
Who it is for
- Software developers
- Researchers versioning manuscripts and code
- Operations teams managing configuration as code
Alternatives & comparison
GitHub, GitLab and Gitea are not replacements for Git but hosting services built around it; they add web review, issues, CI and access control to Git's core data model. Choosing among them is a hosting decision (cloud versus self-hosted, license, ecosystem), while Git itself is common to all. Other distributed version control systems such as Mercurial exist but have a much smaller share of hosting and tooling support.
- Gitea
Lightweight self-hosted Git forge written in Go with repositories, pull requests, issues, packages and GitHub-compatible Actions, deployable as a single binary
Open sourceOpen source - GitHub
Microsoft-owned code hosting platform for Git repositories with pull requests, issues, Actions CI/CD, package registry, Copilot and the largest open-source community
ProprietaryFreemium - GitLab
Open-core DevSecOps platform combining Git hosting, merge requests, integrated CI/CD pipelines, registry and security scanning, available as SaaS or self-managed
MixedFreemium
Sources & verification
Primary sources consulted for this record. Claims are tied to the fields each source supports; the automated link checker re-verifies every URL on a schedule.
- Licensehttps://github.com/git/git/blob/master/COPYINGchecked Nov 1, 2026
Supports: license_spdx, source_model
COPYING states GPL v2 only
- Official documentationchecked Nov 1, 2026
- Official sitechecked Nov 1, 2026
- Repositorychecked Nov 1, 2026
- Confidence
- High
- Reviewed
- Nov 1, 2026
- Links
- Verified · Nov 2, 2026
Spotted an error?
More in Version control & code hosting
Forgejo
Forgejo project (Codeberg e.V.) · Version control & code hosting
Community-governed self-hosted Git forge forked from Gitea, stewarded by Codeberg e.V., with pull requests, issues, packages and Forgejo Actions