* 本場景命令:?**git init**

* * *
* 在本場景中, 主人公新建了?`status.txt`?文件,?`git add .`?后 objects 目錄下多出一個文件,隨后提交第一個commit,objects目錄又多出兩個文件.那么這多出的三個文件到底用來干什么呢???
* 其實這三個文件都是git對象,分別對應三種git數據模型?**blob**,**tree**,**commit**,其實還有第四種對象?**tag**.
* **blob**?對應我們倉庫里的普通**文件**,當你將一份文件add到倉庫里時,git將會為你產生一個blob對象存于objects目錄下.
* **tree**?對應我們倉庫里的一個**目錄**,當你做一次commit時,git將會為你新增的目錄產生tree對象存于objects目錄下.
* **commit**?對應我們的一次**提交行為**,當你做一次commit時,git將會為你產生tree對象(若有新目錄)的同時產生commit對象,存于objects目錄下.
* 可以利用?`cat-file -t SHA-1-of-one-object`?查看一個對象的數據類型, SHA-1-of-one-object 的值為你看到一個objects下新增的文件的子目錄+文件名
* 第一次提交后git的對象(blog,tree,commit)和引用(head,branch)間的關系組織如下圖,圖中已表明每一個對象和引用分別對應的事物