HEAD当前指向的分支信息.
cconfig,当前仓库的配置信息,core,用户,远程,分支等信息.(命令操作其实就是修改当前config文件)
refs
---heads,其实就是分支,里面包含所有的分支文件,文件存储了分支指向的指纹信息
---tags 叫做里程碑,或者版本发布用等记录重要版本.文件也存储了tag的指纹信息
---remotes,远程仓库信息

.git 文件目录

• COMMIT_EDITMSG
• config 当前 git 的配置文件
• description (仓库的描述信息文件)
• HEAD (指向当前所在的分支),例如当前在 develop 分支,实际指向地址是 refs/heads/develop
• hooks [文件夹]
• index
• info [文件夹]
• logs [文件夹]
• objects [文件夹] (存放所有的 git 对象,对象哈希值前 2 位作为文件夹名称,后 38 位作为对象文件名, 可通过 git cat-file -p 命令,拼接文件夹名称+文件名查看)
• ORIG_HEAD
• refs [文件夹] 
• heads (存放当前项目的所有分支)
• tags (存放的当前项目的所有标签,又叫做里程碑)

• cat 命令, 功能:用来显示文件。 例如 cat text.md 显示 text.md 文件的内容
• ls -al 命令, 表示列出当前目录下的所有文件(包括隐藏文件)
• git cat-file -t 命令 , 查看 git 对象的类型
• git cat-file -p 命令, 查看 git 对象的内容
• git cat-file -s 命令, 查看 git 对象的大小


commit,tree,blob 之间的关系

commit操作之后会产生一个tree,可以将这个tree理解为一个数据节点,文件夹就是一个tree,里面的文件就是blob

可以通过一个测试加深理解

首先初始化一个git目录

$git init watch_git_object
$mkdir doc
$vim doc/readme
添加文件内容:hello world
$git add doc/readme
$git commit -m 'add readme'
$find .git/objects -type f
$atch_git_object git:(master) find .git/objects -type f
.git/objects/9b/37366fef29725d58ba661075ba71b35c027354
.git/objects/9c/391d35cd1790f182529f706d3a0bdf654d5718
.git/objects/b5/78ef15afc72cd5136fc579c83a376a355f093c
.git/objects/e4/9d8506c4cf1b78833b61ee7d5f88169ebc7a58

  

通过git cat-file -t/-p 命令逐个查看每个git对象的类型和内容,可以整理出以下关系(下面的关系是向readme中添加新的内容后提交形成的新的数结构)。

最新文章

  1. iOS 开发:利用第三方插件来安装CoCoapods
  2. angular $http配置属性
  3. OCR识别-python版(一)
  4. 【转】IOS静态库a文件制作流程
  5. Scala中的If判断&While&For循环
  6. 面向对象设计模式之TemplateMethod模板方法(行为型)
  7. 乐在其中设计模式(C#) - 提供者模式(Provider Pattern)
  8. storm遇到问题汇总
  9. Java8 in action(1) 通过行为参数化传递代码--lambda代替策略模式
  10. 办公楼[POI2007]
  11. SVN提交文件的时候过滤指定文件
  12. 洛谷 P2590 [ZJOI2008]树的统计(树链剖分)
  13. dao层、service和action的运用和区别
  14. 一起学Hive——详解四种导入数据的方式
  15. Self-Introduce
  16. 跨平台设置NODE_ENV(兼容win和linux)
  17. 还有看不懂的java语句?
  18. 深入理解ajax系列第六篇——头部信息
  19. ZJOI2019day1退役记
  20. AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu) Chapter 3. Data Structures Fundamental Data Structures

热门文章

  1. AS3.0判断数组中最大值
  2. C#最小化到托盘+双击托盘恢复+禁止运行多个该程序
  3. ArcGIS二次开发的几种方式
  4. 对上一篇Logstash的补充
  5. c#查看本机网络端口和对应的程序名
  6. LINUX——LVM逻辑卷管理
  7. 剑指offer_2.3_Day_6
  8. 104-PHP定义并实例化类
  9. C++ 99表
  10. Java中的super关键字和this关键字作用介绍