# 零、简介

Git 是一个开源版本控制系统，以其速度、稳定性和分布式协作模型而闻名。Git 最初创建于 2006 年，旨在管理整个 Linux 内核，现在它拥有一个全面的功能集、一个活跃的开发团队和几个免费的托管社区。

Git 是从头开始设计的，很少关注集中式版本系统的现有标准。因此，如果你来自 SVN 或 CVS 背景，在阅读本指南之前，试着忘记所有关于版本控制的知识。

分布式软件开发从根本上不同于集中式版本控制系统。Git 没有将文件信息存储在单一的中央存储库中，而是为每个开发人员提供了存储库的完整副本。为了促进协作，Git 允许这些存储库中的每一个与任何其他存储库共享变更。

![](img/image001.png)

图 1:分布式软件开发

在您的本地机器上拥有一个完整的存储库对开发周期有着深远的影响…

### 更快的命令

首先，存储库的本地副本意味着几乎所有版本控制操作都要快得多。Git 操作不是通过网络连接与中央服务器通信，而是在本地机器上执行。这也意味着您可以在不更改工作流程的情况下脱机工作。

### 稳定性

由于每个协作者本质上都有整个项目的备份，因此服务器崩溃、存储库损坏或任何其他类型的数据丢失的风险比依赖单一访问点的集中式系统低得多。

### 孤立的环境

Git 存储库的每个副本，无论是本地的还是远程的，都保留了项目的完整历史。拥有一个完整的、独立的开发环境让每个用户都可以自由地尝试新的添加内容，然后将它们整理成干净的、可发布的提交内容。

### 高效合并

每个开发人员的完整历史也意味着每个开发人员的不同历史。一旦您进行了一次本地提交，您就与项目中的其他人失去了同步。为了应对如此大量的分支，Git 变得非常擅长合并不同的开发线。