git三大對象類型分別是commit、tree、blob
commit顧名思義是提交的意思,它在git倉庫中以快照的形式保存,表明着項目不一樣的時間節點所對應的內容,Git 能夠將項目恢復到任意一個快照
tree表明着當前快照內的組織結構,也可看做是文件夾目錄
blob表明着當前快照內的具體文件對象,git存儲方式是以文件內容做爲判斷,即不一樣名的相同內容的兩個文件只會佔用git一份存儲空間
思考題:新建的Git倉庫,有且僅有1個commit,僅僅包含 /doc/readme ,請問該commit中一共包含幾個對象,內含多少個commit,多少個tree,多少個blob?
答案是4個對象,1個commit,2個tree,1個blob
git的對象類型的層級關係與linux文件的目錄結構十分類似,每一個commit能夠看做是一個總體,commit自己是一個commit對象,包含着一個tree對象(/),從目錄和對象兩者結合的角度看,該commit包含/doc/readme。其中,commit看做是/(根目錄),同時他是一個tree對象,tree內包含着目錄doc/;doc/是二級目錄,同時他也是一個tree對象,tree內包含着文件readme;readme是一個文件,同時他也是一個blob對象linux