源代码控制——Git 入门与实践
1. 源代码控制背景
源代码控制(SCC),也称为版本控制,是将项目的源代码文件和其他相关工件(如文档)存储在一个公共仓库中的实践。这样,多个开发者可以同时在项目上工作而互不干扰。SCC 软件会记录变更,并支持项目的多个版本同时存在。
常见的 SCC 系统包括:
- 并发版本系统(CVS)
- BitKeeper
- Rational Clear Case
- Mercurial
- Perforce
- Subversion
- Visual Source Safe
在 2002 年之前,内核开发社区没有使用版本控制系统,变更以补丁和存档文件的形式非正式地传播。2002 年,社区开始使用 BitKeeper,但后来由于与 BitKeeper 团队的摩擦,失去了免费使用该软件的权限。这促使 Linux 社区开发了自己的工具——Git。
Git 的设计目标包括:
- 速度快
- 设计简单
- 完全分布式
- 支持“非线性”开发
- 可能有成千上万个并行分支
- 能高效处理如内核这样的大型项目
“Git”这个名字来源于英国俚语,指愚蠢或讨厌的人。Linus 解释说:“我是个自负的混蛋,我用自己的名字命名所有项目。先是‘Linux’,现在是‘Git’。”
2. Git 简介
Git 是一个分布式版本控制系统,客户端不仅可以检出文件的快照,还能完全镜像中央仓库。每个检出操作都是一次完整的备份,因此如果中央服务器出现故障,可以从任何一个客户端恢复