Git 是一个免费开源的分布式版本控制系统,由 Linux 之父 Linus Torvalds 于 2005 年创建。它的设计目标是速度、数据完整性以及对分布式非线性工作流的强大支持。
与集中式版本控制系统(如 SVN)不同,Git 为每个开发者提供完整的代码仓库副本,包括完整的历史记录。这意味着即使离线,开发者也能进行提交、查看历史、创建分支等操作。
发展历史
2005 年,Linux 内核开发社区与 BitKeeper 的商业授权终止,Linus Torvalds 决定自行开发一款新的版本控制系统。设计目标包括:
- 速度快
- 简单的设计
- 对非线性开发(数千个并行分支)的完全支持
- 完全分布式
- 能够高效处理大型项目(如 Linux 内核)
核心特性
- 分布式架构:每个副本都是完整仓库,不依赖中央服务器
- 高效分支:轻量级分支,创建与切换几乎瞬时完成
- 数据完整性:使用 SHA-1 哈希确保内容不被篡改
- 暂存区:精细控制提交内容,支持多阶段提交
- 离线工作:本地提交、查看历史、分支操作无需网络
- 灵活工作流:支持多种协作模式(集中式、功能分支、Forking 等)
Git vs 其他版本控制系统
| 特性 | Git | SVN | Mercurial |
|---|---|---|---|
| 架构 | 分布式 | 集中式 | 分布式 |
| 分支性能 | 极快 | 较慢 | 快 |
| 离线操作 | 完全支持 | 有限 | 完全支持 |
| 数据完整性 | SHA-1 校验 | 无内置校验 | SHA-1 校验 |
| 社区规模 | 最大 | 中等 | 较小 |