git#3#基本概念

来源:互联网 发布:小米电视电视直播软件 编辑:程序博客网 时间:2024/06/01 19:30

今天整理下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 查看文件的状态。
这里写图片描述

0 0
原创粉丝点击