您的位置:首页 > 其它

git#3#基本概念

2015-11-25 13:53 239 查看
今天整理下git的一些基本概念。很多文章一说到git,最开始的介绍一定会有分布式之类的词。本文也不例外。有网友说的好,类比svn这一类集中版本库像一棵树,git所谓的分布式就像一张网。其实只是这么说还不够。svn之类的版本管理来说,服务器是一棵树,而开发者本地能保存的就是这棵树上某个分支上某个点的版本。这篇文章说的也很好,git的设计思想是分布式代码库和文件快照,而svn的设计思想是集中管理和文件差异。这些概念一时体会不深,就一点点了解体会吧。

为什么要选择git

第一,git的文件快照设计思想。即整个文件保存,而非增量保存。svn等分支意味着源代码的完整拷贝。而git不是。

第二,git的去中心化设计思想。传统的svn等版本管理采用c/s架构。只有一个中心代码仓库。而git除了有个默认的远程仓库(origin)之外,每个开发者本地都维护一个仓库。有了本地仓库,我们就可以离线提交。这是一个很大的好处,传统的如svn版本管理,一单网络出问题,就无法提交。但是这个好处真有这么大么?网络异常存在的可能性又多大呢?我不理解这个好处有别人说的那么大。

对象模型

git对象包含三部分:类型,大小,内容。

对象的类型分为:commit, trees,blobs,tags四类。

git采用SHA1算法生成对象的标识。

git仓库模型

仓库模型也称为三种状态:

工作目录: work directory

暂存区域: stage 或者 index

本地长裤:history

但是以上三种状态都是在一个文件被track之后才有的。

如果你在开发时只是穿件了一个文件都没有track。

那这个文件的状态可以认为是最原始的untracked状态。

我们可以通过 git status 查看文件的状态。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: