Generated by GPT-5-mini| Git (software) | |
|---|---|
![]() | |
| Name | Git |
| Developer | Linus Torvalds; Junio Hamano; Kernel.org |
| Released | 2005 |
| Programming language | C; Perl; Shell |
| Operating system | Linux; macOS; Windows |
| License | GNU General Public License v2 |
| Website | git-scm.com |
Git (software) Git is a distributed version control system created for tracking changes in source code during software development. It is used to coordinate work among programmers, manage history for projects hosted on platforms like GitHub, GitLab, Bitbucket, and integrate with continuous integration tools such as Jenkins, Travis CI, and CircleCI. Originally authored by Linus Torvalds and maintained by Junio Hamano, Git underpins collaboration in projects from the Linux kernel to proprietary repositories at Microsoft and Google.
Git was initiated by Linus Torvalds in April 2005 after disputes involving the BitKeeper licensing used by the Linux kernel community. Early development included contributions from Shawn O. Pearce, Jeff King, and Junio Hamano, who became the project maintainer. The project quickly gained adoption across projects such as GNOME, KDE, and Mozilla Firefox, and was supported by hosting services like SourceForge and later GitHub, which popularized pull request workflows. Over time Git's roadmap intersected with efforts by organizations including Kernel.org, Free Software Foundation, and companies like Red Hat and Canonical (company) that integrated Git into distributions and enterprise toolchains.
Git's architecture emphasizes a directed acyclic graph of commits, using content-addressable storage backed by SHA-1 (and later SHA-256 migration efforts) similar to mechanisms in Secure Hash Algorithm 1, cryptographic practices advocated by NIST. The system models data as a set of immutables (blobs, trees, commits, tags) and uses objects stored in the repository backend on filesystems such as ext4, Btrfs, and ZFS. Networking operations rely on protocols compatible with HTTP, SSH, and the Git protocol, enabling integration with services like Apache HTTP Server and OpenSSH. Design decisions were informed by constraints from kernel development and practices from projects like BitKeeper and Monotone.
Key concepts include repositories, branches, commits, staging area (index), working tree, and remotes—terms adopted across ecosystems like GitHub, GitLab, and Bitbucket. Branches form pointers in the commit graph similar to references used in Perforce or Subversion. A commit represents a snapshot authored and committed with metadata referencing authors such as contributors from Apache Software Foundation, Eclipse Foundation, or corporate teams at Facebook. Tags mark release points used by projects like Linux kernel, Node.js, and Python. Merge strategies (fast-forward, three-way) and conflict markers are concepts shared with version control systems from Microsoft, Oracle, and IBM toolchains.
Git provides commands including commit, branch, merge, rebase, pull, push, clone, fetch, checkout, cherry-pick, reflog, bisect, and stash—commands used in workflows established by GitHub Flow, GitLab Flow, and Git Flow by Vincent Driessen. Integrations extend features via hooks, submodules, and worktrees used in monorepos at companies like Google and Facebook. Tools such as GNU Privacy Guard aid signing commits and tags, while GUIs like GitKraken, Sourcetree, and TortoiseGit provide client-side interfaces. Utilities such as blame, log, and diff are used alongside editors and IDEs like Visual Studio Code, JetBrains, and Eclipse (software).
Common workflows include centralized, feature-branch, forking, and trunk-based workflows used by teams at Netflix, Amazon, and Spotify. Models such as Git Flow and GitHub Flow prescribe release branching, hotfix procedures, and pull request conventions adopted by projects including Ruby on Rails, Django, and Kubernetes. Fork-and-pull development is central to large open source projects on GitHub and GitLab, enabling contributions from developers affiliated with organizations like Mozilla Foundation, Apache Software Foundation, and academic groups from MIT and Stanford University.
Implementation is primarily in C for performance, with scripting in Shell and Perl; maintenance is coordinated through Kernel.org and contributors from companies such as Google, Microsoft, and Red Hat. Git optimizes operations with packfiles, delta compression, and index structures to handle large repositories like the Linux kernel and monorepos at Microsoft. Performance considerations involve filesystem behavior on platforms like NTFS, APFS, and ext4, and scaling strategies integrate technologies from Mercurial and large-scale storage solutions used by Facebook and Google.
Git is the de facto VCS for open source and widely used in enterprises at Microsoft, IBM, Amazon, and government research labs such as CERN. Hosting providers include GitHub, GitLab, Bitbucket, and enterprise offerings from Atlassian. The ecosystem comprises GUI clients, CI/CD integrations with Jenkins and GitHub Actions, code review tools like Gerrit, and educational resources from institutions such as University of Cambridge, Harvard University, and training by companies like Red Hat. Standards and security discussions involve bodies and projects linked to OpenSSH, GNU Project, and cryptographic guidelines from NIST.
Category:Version control systems