git仓库的组成

git仓库就是代码仓库的意思,不一定就存代码,就存放代码或者文件的地方。

英文单词是Repository.

git由什么对象组成的?

git系统由三种对象组成,分别是

(1)提交(commit)

(2)树(tree)

(3)原文(blob)

根据三者之间的关系进行各个概念的讲解。

先看一张图


git的每一次提交是一个commit对象,这个对象中又包括这几个内容:

tree对象:真正记录文件改变的记录,是tree的地址,指向真正的记录地址

author:文件的创建者,第一次是放在仓库的

commiter:就是这次是谁提交的

comment:这次提交的注释


tree对象记录了这次提交的记录,每一个文件代表一个blob,指向一个文件地址。

tree里面还可以包括tree对象,就像目录似的还有子目录。


上面这就是一次提交的commit操作的结果。是不是关系也搞懂了,概念也搞懂了。


每次提交git都会生成一个快照(snapshot),每提交一次生成一个快照,这次的快照是上次的快照基础上生成的。

请看下图




一共提交了三次,生成了三次快照,这次快照将会完整的保存下来。每次快照都是在上一次快照的基础上生成的,第一次入仓库时也会提供一个快照。

这些生成的一个链条,就可以理解为一个分支。分支将会再下个博客中讲解。


git仓库存放在哪呢?就是在当前工作目录的.git文件夹下。

.git/objects  存放所有的对象

.git/heads   存放的所有分支,这里仅仅是一个引用,每个引用引用的都是该分支最后一次提交的记录。

.git/refs/tags  所有的tag,方便以后查看的标签

.git/logs/HEAD  HEAD的历史变化
.git/refs/heads  除了master分支之外的其他分支HEAD的变化历史

posted @ 2015-09-25 09:56  knightsoul  阅读(1070)  评论(0编辑  收藏  举报