Git 数据模型分析-1

//注:所有图片来源于《Git Internals》PDF文档。

昨日些许郁闷,都是《Git Internals》这本书弄得。 

Git 简介

image 

Git 是一个SCM版本管理工具,始作者是Linus Torvalds,也就是linux之父。
Git 最初用一些脚本语言实现(Shell, Perl)等,后来用C语言改写,性能显著提高。
Git 有些独特的地方,比如他的数据存储的结构。它相对于一些主流的工具比如CVS, SVN等等,存储占的空间要小很多。

而我也正是因为没耐心弄清这个数据模型而不太开心。

 

 


Git 数据对象

Git视数据为"Git Object", 一共有4种Git Object,都保存在Git 数据库中,也就是在Git 的文件系统目录下。
每个对象保存时都经过压缩(Zlib),并有一个唯一的索引值(SHA1 + header)


SHA stands for Secure Hash Algorithm. A SHA creates an identifier of fixed length that uniquely identifies a specific piece of content. SHA-1 succeeded SHA-0 and is the most commonly used algorithm. Wikipedia (http://en.wikipedia.org/wiki/SHA1) has more on the topic.

 

Commit 结构

image  <=要commit的文件结构, 包括tree--directory 和blob-file.








image image  <=2次commit的关系。父与子
在merge branch的时候 一个commit是可以有2个以上父commit的。



 image
<=可以做tag.







内容太多,分多篇写吧。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值