Git分布式特性:
集中化的版本控制系统:他们都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端
连到这台服务器,取出最新的文件或者提交更新 。如下图所示
分布式版本管理控制系统:分布式版本管理控制系统的客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像
下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因
为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
Git版本管理和控制系统的存储方式:
Git 和其它版本控制系统(包括 Subversion 和近似工具)的主要差别在于 Git 对待数据的方法。概念上来区分,
其它大部分系统以文件变更列表的方式存储信息。这类系统(CVS、Subversion、Perforce、Bazaar 等等)将
它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。
Git 不按照以上方式对待或保存数据。反之,Git 更像是把数据看作是对小型文件系统的一组快照。每次你提交
更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。为了高效,
如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。Git 对待数据更像是
一个 快照流
这是 Git 与几乎所有其它版本控制系统的重要区别。因此 Git 重新考虑了以前每一代版本控制系统延续下来的诸
多方面。Git 更像是一个小型的文件系统,提供了许多以此为基础构建的超强工具,而不只是一个简单的 VCS。
稍后我们在Git 分支讨论 Git 分支管理时,将探究这种方式对待数据所能获得的益处。
Git的三种状态:
Git 有三种状态,你的文件可能处
于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。已提交表示数据已经安全的
保存在本地数据库中。已修改表示修改了文件,但还没保存到数据库中。已暂存表示对一个已修改文件的当前版
本做了标记,使之包含在下次提交的快照中。