Generated by GPT-5-mini| Git | |
|---|---|
![]() | |
| Name | Git |
| Author | Linus Torvalds |
| Developer | Junio Hamano and community |
| Released | 2005 |
| Programming language | C, Shell, Perl |
| Operating system | Unix-like, Windows, macOS |
| License | GNU General Public License v2 |
Git Git is a distributed version control system created for tracking changes in source code during software development, emphasizing speed, data integrity, and support for non-linear workflows. It was initiated to coordinate work on large projects with many contributors and later evolved into a foundational tool used across open source and enterprise projects worldwide.
Git originated in 2005 when Linus Torvalds developed an alternative to existing systems after disputes involving BitKeeper and the maintenance of the Linux kernel codebase; early stewardship and maintenance were assumed by Junio Hamano. The project rapidly attracted contributors from communities around GNOME, KDE, Apache Software Foundation, and companies like Google and IBM, leading to integrations with hosting providers such as GitHub, GitLab, and Bitbucket. Over time, ecosystem events including presentations at FOSDEM, DebConf, and LinuxCon and publications in venues like ACM conferences documented Git's performance improvements compared to systems like CVS and Subversion.
Git models data as a series of snapshots rather than changesets, using content-addressable storage keyed by SHA-1 (later options include SHA-256 migration discussions). Core concepts include the index (staging area), commits, trees, blobs, and tags; these are manipulated via objects in a repository. Git's design supports branching and merging with lightweight branches and the use of merge strategies (e.g., recursive, ours, theirs) influenced by practices from projects like Mozilla and OpenStack. The architecture permits distributed workflows where repositories synchronize via protocols such as SSH, HTTP, and the Git protocol, enabling collaboration across organizations like Red Hat, Microsoft, and Facebook.
Users interact with repositories using commands that operate on the working directory, index, and object database; common commands include init, clone, add, commit, fetch, pull, push, branch, checkout, merge, rebase, log, diff, and tag. Advanced users employ commands such as bisect, stash, reflog, and filter-branch (and modern successors like git-filter-repo contributed by community members) when managing large histories or performing forensic investigations similar to workflows used by teams at Netflix and Dropbox. Integrations with continuous integration systems like Jenkins, Travis CI, CircleCI, and Azure DevOps automate testing and deployment pipelines triggered by push or pull events, mirroring patterns used by Node.js and Rust projects.
Popular workflows include centralized, feature-branch, Gitflow, forking, and trunk-based development; these models have been advocated by organizations such as Atlassian, ThoughtWorks, and authors of books used in training at O'Reilly Media. The Gitflow model formalizes roles for develop, master, release, hotfix, and feature branches and is contrasted with pull request–driven forking used by communities on GitHub and GitLab. Large-scale projects like Kubernetes, Linux kernel, and Docker adapt branching strategies to balance long-lived branches, release engineering, and continuous delivery demands.
The reference implementation is written primarily in C with shell and Perl scripts, maintained through a contributor workflow coordinated via mailing lists and repositories used by Kernel Newbies and kernel maintainers. Repository storage uses object databases in .git/objects, refs in .git/refs, and packfiles for efficient transfer and storage; packfile formats and delta compression were refined with contributions from researchers at University of California, Berkeley and industrial engineers at Google. Performance optimizations include shallow clones, partial clone protocols, and technologies like the Git alternates mechanism used by continuous integration farms at Mozilla and large monorepos operated by Facebook.
Git has been adopted across open source projects and enterprises, integrated into platforms like GitHub, GitLab, Azure DevOps, and Bitbucket and taught in curricula at institutions such as MIT, Stanford University, and University of Cambridge. Tooling and GUIs such as SourceTree, Tower, TortoiseGit, and IDE integrations in Visual Studio Code, JetBrains products, and Eclipse extend accessibility for teams at SAP, Oracle, and startups. The ecosystem includes services for code review (e.g., Gerrit), package managers for languages like npm, PyPI, and Cargo that rely on Git workflows, and community standards like Contributor License Agreements used by projects under Linux Foundation stewardship.
Security considerations include signing commits and tags with OpenPGP or GnuPG, configuring access control using SSH keys and OAuth integrations provided by GitHub Enterprise and GitLab CE/EE, and migrating from SHA-1 to stronger hashes in response to collision research from teams at CWI and Google. Best practices promoted by security teams at Mozilla, Google, and Microsoft include enforcing branch protection rules, using CI checks, minimizing use of force pushes on shared branches, and maintaining a signed audit trail for releases. Incident response in supply-chain attacks references guidelines from organizations like NIST and OWASP for secure software development lifecycles.
Category:Version control systems