Git 基础

阮一峰 Git

01、 与其他版本系统的区别

SVN,CVS等是集中式的版本控制系统,而Git则是分布式的版本控制系统,为什么叫分布式的版本控制系统呢?

因为Git客户端并不只是提取最新版本的文件快照,而是把代码仓库完成地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。

02、 直接记录快照,而非差异比较

Git和其他版本控制系统的主要区别在于Git对待数据的方法。

大部分系统以文件变更列表的方式存储信息,这类系统将它们保存的信息看做是一组基本文件和每个文件随时间逐步累积的差异。

而Git 更像是把数据看作是对小型文件系统的一组快照。每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。Git 对待数据更像是一个快照流

03、 三个工作区域

Git 仓库、工作目录、暂存区域

04、 文件的三种状态

image

  • 已暂存(staged):已暂存表示把已修改的文件放在下次提交时要保存的清单中
  • 已提交(committed):已提交表示该文件已经被安全地保存在本地数据库中了
  • 已修改(modified):已修改表示修改了某个文件,但还没有提交保存

每个项目都有一个 Git 目录,它是 Git 用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。

从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录。这些文件实际上都是从 Git 目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对这些文件进行编辑。

所谓的暂存区域只不过是个简单的文件,一般都放在 Git 目录中。

posted @ 2017-09-26 12:29  NewQ  阅读(154)  评论(0编辑  收藏  举报