码迷,mamicode.com
首页 > 其他好文 > 详细

Git/Github GitBash 2.2 .git.objects

时间:2018-08-08 18:17:24      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:class   note   hash   查看   对象   commit   author   info   数据   

$ mkdir c
$ cd c
$ git init

 

//首次提交。

$ vim 1.txt
$ ls -alh .git/objects/
total 4.0K
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 ./
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 ../
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 info/
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 pack/
$ git add 1.txt
$ git commit -m .
$ ls -alh .git/objects/
total 4.0K
drwxr-xr-x 1 desktop 197121 0 八月  8 17:01 ./
drwxr-xr-x 1 desktop 197121 0 八月  8 17:01 ../
drwxr-xr-x 1 desktop 197121 0 八月  8 17:01 38/
drwxr-xr-x 1 desktop 197121 0 八月  8 17:01 81/
drwxr-xr-x 1 desktop 197121 0 八月  8 17:01 d0/
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 info/
drwxr-xr-x 1 desktop 197121 0 八月  8 17:00 pack/
$ find .git/objects/ -type f
.git/objects/38/fd29697b220f7e4ca15b044c3222eefe5afdc1
.git/objects/81/95bd571d304adf2632377d6dabc5880cfbdf36
.git/objects/d0/0491fd7e5bb6fa28c517a0bb32b8b506539d4d
$ git cat-file -t 38fd
tree
$ git cat-file -t 8195
commit
$ git cat-file -t d004
blob
$ git show d004
1

 

//再次提交。

$ vim 1.txt
$ git add 1.txt
$ git commit -m .
$ find .git/objects/ -type f
.git/objects/11/91247b6d9a206f6ba3d8ac79e26d041dd86941
.git/objects/38/fd29697b220f7e4ca15b044c3222eefe5afdc1
.git/objects/4d/1356c6ae08b43a14779807b6be98554dce7d3c
.git/objects/54/57b3462c78fd6d7590a15ad3be446a4fb5d1fd
.git/objects/81/95bd571d304adf2632377d6dabc5880cfbdf36
.git/objects/d0/0491fd7e5bb6fa28c517a0bb32b8b506539d4d
$ git cat-file -t 1191
blob
$ git cat-file -t 4d13
commit
$ git cat-file -t 5457
tree
$ git show 1191
1
2

//显然,每次提交,每个文件都增加一组(commit/tree/blob)。

 

//查看commit、tree、blob。

$ git show -s --pretty=raw 4d13
commit 4d1356c6ae08b43a14779807b6be98554dce7d3c
tree 5457b3462c78fd6d7590a15ad3be446a4fb5d1fd
parent 8195bd571d304adf2632377d6dabc5880cfbdf36
author yourname <youremail@qq.com> 1533719156 +0800
committer yourname <youremail@qq.com> 1533719156 +0800
$ git ls-tree 5457
100644 blob 1191247b6d9a206f6ba3d8ac79e26d041dd86941    1.txt
$ git show 1191
1
2

//tree格式:权限 节点类型 hash 节点名称。

 

//commit后如果是稳定版本通常添加tag。
//git tag tagname //轻量 tag,不占对象。即.git/objects/不会增加数量。
//git tag -a tagname -m ‘note‘ //附注 tag,占对象。
//git tag tagname 4d13 //git tag tagname hash-object 为目标 commit 设置 tag。

 

//结论:
//commit,可以定位tree。
//tree,类似目录,可以定位其下所有tree和blob。
//blob,指向文件数据,不带名称。
//tag,指向commit。

 

Git/Github GitBash 2.2 .git.objects

标签:class   note   hash   查看   对象   commit   author   info   数据   

原文地址:https://www.cnblogs.com/dailycode/p/9444302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!