学习笔记:Git内部原理
2015-05-05 15:46
225 查看
Git的主要结构:
objects目录,存储所有数据内容。
refs目录,存储分支指针
HEAD文件,存储当前分支
index文件,保持暂存区域的信息
一.数据存储
Git是一套内容寻址的文件系统,它的数据是以key-value存储的。存储方式为:为每份内容剩余一份文件,取得内容与头信息的SHA-1校验和,创建以该校验和的前两个字符为名称的目录,以校验和的其余38个字符为名的文件。所以,我的理解是,比较两个文件是否相同,可以通过SHA-1来比较。
Git把对象都存在在objects文件夹里面。有以下四种对象:
blob:普通的文件,如源码等文件。相当于Linux中的inodes或文件内容。
tree:相当于Linux中的目录。一个单独的tree包含一条或多条tree目录,每一条目录含有一个指向blob或子tree对象的SHA-1指针,并附有对象的权限模式、类型和文件信息。
commit:快照信息。
annotated tag:带注释的标签。
二.引用(reference)
Git的一个分支就算一个head记录的引用,HEAD文件是一个指向当前分支的标示符。
现在,包含分支的git图像如下图:
![](http://img.blog.csdn.net/20150505162934401)
在使用远程仓库的时候,还有一个概念需要了解:Refspec
Refspec的格式是一个可选的+,接着是<src>:<dst>
objects目录,存储所有数据内容。
refs目录,存储分支指针
HEAD文件,存储当前分支
index文件,保持暂存区域的信息
一.数据存储
Git是一套内容寻址的文件系统,它的数据是以key-value存储的。存储方式为:为每份内容剩余一份文件,取得内容与头信息的SHA-1校验和,创建以该校验和的前两个字符为名称的目录,以校验和的其余38个字符为名的文件。所以,我的理解是,比较两个文件是否相同,可以通过SHA-1来比较。
Git把对象都存在在objects文件夹里面。有以下四种对象:
blob:普通的文件,如源码等文件。相当于Linux中的inodes或文件内容。
tree:相当于Linux中的目录。一个单独的tree包含一条或多条tree目录,每一条目录含有一个指向blob或子tree对象的SHA-1指针,并附有对象的权限模式、类型和文件信息。
commit:快照信息。
annotated tag:带注释的标签。
二.引用(reference)
Git的一个分支就算一个head记录的引用,HEAD文件是一个指向当前分支的标示符。
现在,包含分支的git图像如下图:
在使用远程仓库的时候,还有一个概念需要了解:Refspec
Refspec的格式是一个可选的+,接着是<src>:<dst>
相关文章推荐
- Git学习笔记 - Git 内部原理
- git学习笔记之1 Git 内部原理 - 底层命令和高层命令
- git学习笔记之2 Git 内部原理 - Git 对象
- Android 学习笔记之WebService实现远程调用+内部原理分析...
- android内核剖析学习笔记:AMS(ActivityManagerService)内部原理和工作机制
- 孙鑫VC学习笔记:第一讲 Windows程序内部运行原理
- 孙鑫VC视频学习笔记之windows程序内部运行原理
- jdk的配置和JVM内部原理 java 基础学习笔记 第一天
- MFC视频教程(孙鑫)学习笔记1-Windows程序内部运行原理
- Unix编程学习笔记--------把一个库下载到系统中,那么这个库到底是什么??? 其内部的机制和原理是什么???
- 孙鑫vc++学习(vs2008)笔记之第三课MFC内部运行原理
- 孙鑫VC学习笔记:第一讲 Windows程序内部运行原理
- Git学习笔记1--Git原理简单介绍
- git学习笔记 -- day01 原理、安装、工作流程、三种装态、设置个人信息
- Git学习笔记1--Git原理简介
- Git学习笔记-Git Branching
- 编译原理学习笔记二
- hadoop学习笔记二_MapReduce应用场景、原理、基本架构
- Git学习笔记
- 学习笔记 --- LINUX LCD显示原理与驱动分析