git入门1

本文主要参考git手册、廖雪峰老师博客、极客学院相关课程

1.分布式与集中式区别

集中式
有一个把所有文件存放在网上统一的中央服务器,协同合作的人员先从服务器上根据自己的需要下载目标文件,然后修改后再更新推送。中央服务器就是一座图书馆,协作人员去图书馆借来一本自己感兴趣的书阅读,阅读之后再还回去。

git入门1_第1张图片

分布式
中央服务器有一个版本仓库,协同合作的人员从服务器下载一个完整的包含所有文件的仓库,然后修改之后进行推送,即对仓库进行备份。这就相当于每个人都拥有一座图书馆,git就是采用分布式版本控制。

git入门1_第2张图片

2. git基本原理

[直接记录快照,而非差异比较]

Git 和其它版本控制系统(包括 Subversion 和近似工具)的主要差别在于 Git 对待数据的方法。 概念上来区分,其它大部分系统以文件变更列表的方式存储信息。 这类系统(CVS、Subversion、Perforce、Bazaar 等等)将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。简单的来说,假设文件A发生了变化,那我存储的就只是 文件A 的相对最近一次历史的差异,如下图显示。

git入门1_第3张图片


Git 不按照以上方式对待或保存数据。 反之,Git 更像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 快照流。也就是把 整个仓库 存储下来,然后与最近一次历史提交的仓库进行对比,这与你的浏览器会保存某些网站的快照类似。

git入门1_第4张图片

你可能感兴趣的:(git入门1)