一、Git对象库的探秘
1.查看最新1个commit的原始内容;
2.commit 9efaef05b3a6baaebc2b3c5dc1aa4710131e1b68:是本次提交的唯一标识;
tree 6222d0694ffcab4de64f6a43d8d480afdecb4d35:本地提交所对应的目录了树;
parent ec57d1f31c5f01c1a47bf7b13787705a01fb733c:本次提交的上一次提交;
3.查看6222d0为tree类型;
4.查看ec57d1为commit类型;
5.查看9efaef为 commit类型;
6.查看6222d0的内容是一个blod对象,保存着文件welcome.txt的内容;
7.查看ec57d1为上一个commit内容;
8.查看9efaef为 当前commit内容;
9.上面的tree对象是一个blob对象;
10.内容为welcome.txt的内容Hello;
11.这些对象存储在Git库中的objects目录下(id的前两位是目录名,后38位是文件名);
由此,可以了解Git版本库对象关系图如下:
12.查看commit的相互关联关系,最后一个提交没有parent属性;
二、Git分支的探秘
1.查看当前只有master分支;
2.查看HEAD、master、和refs/heads/master指向同一个commit(f22d9e);
3.查看.git库中,HEAD和master相关的目录;
4.查看.git/HEAD的内容为refs/heads/master分支的引用;
5.查看.git/refs/heads/master的commit为f22d9e;
6.查看f22d9e的类型为commit类型;
7.查看f22d93的内容为最新的commit add stash.txt;
从上面的分析不难得出,如下的Git版本库结构图:
目录.git/refs是保存引用的命令控件,启动.git/refs/heads目录下引用又称为分支;
1.查看最新1个commit的原始内容;
2.commit 9efaef05b3a6baaebc2b3c5dc1aa4710131e1b68:是本次提交的唯一标识;
tree 6222d0694ffcab4de64f6a43d8d480afdecb4d35:本地提交所对应的目录了树;
parent ec57d1f31c5f01c1a47bf7b13787705a01fb733c:本次提交的上一次提交;
3.查看6222d0为tree类型;
4.查看ec57d1为commit类型;
5.查看9efaef为 commit类型;
6.查看6222d0的内容是一个blod对象,保存着文件welcome.txt的内容;
7.查看ec57d1为上一个commit内容;
8.查看9efaef为 当前commit内容;
9.上面的tree对象是一个blob对象;
10.内容为welcome.txt的内容Hello;
11.这些对象存储在Git库中的objects目录下(id的前两位是目录名,后38位是文件名);
由此,可以了解Git版本库对象关系图如下:
12.查看commit的相互关联关系,最后一个提交没有parent属性;
二、Git分支的探秘
1.查看当前只有master分支;
2.查看HEAD、master、和refs/heads/master指向同一个commit(f22d9e);
3.查看.git库中,HEAD和master相关的目录;
4.查看.git/HEAD的内容为refs/heads/master分支的引用;
5.查看.git/refs/heads/master的commit为f22d9e;
6.查看f22d9e的类型为commit类型;
7.查看f22d93的内容为最新的commit add stash.txt;
从上面的分析不难得出,如下的Git版本库结构图:
目录.git/refs是保存引用的命令控件,启动.git/refs/heads目录下引用又称为分支;