解剖 .git 資料夾 part. 2 - Blob Object
在前面的 解剖 .git 資料夾 part. 1 - Git Init  我們已經初步瞭解了 .git  資料夾初始化後的結構,但是其中 objects  這個資料夾是空的,就讓我們來看看 執行 git add  後是如何將檔案存放在 objects  資料夾下  Blob object 介紹  由於目前我們還沒有任何的檔案,讓我們新增一個 README.md  echo  "This is readme."  > README.md  再來執行 git add README.md  來將他加到 git 的索引裡,完成後 git status  的結果應該會像下面這樣:  On branch master  No commits yet  Changes to be committed:   (use "git rm --cached <file>..." to unstage)         new file:   README.md  這時候我們可以來看一下 .git/objects  下的檔案長什麼樣子  objects/   ├─ pack/   ├─ info/   └─ 52/      └─ cb6cdb81a64344370c918a301eb153035f915a  blob object 內容  這時候多了一個名字叫 52  的資料夾,底下有一個檔案叫 cb6cdb81a64344370c918a301eb153035f915a ,如果你把他打開會發現內容是看不懂的  $ xxd .git/objects/ 52 /cb6cdb81a64344370c918a301eb153035f915a 00000000 : 7801  4 bca c94f 5230  3463  08 c9 c82c 5600   x.K..OR04c...,V. 00000010 : a2a2 d4c4 94 dc 543 d 2 e00 5 ee3 0781        ......T=..^...  原因是所有在 object file 下的檔案都會經過 zlib  壓縮後存放,解壓縮後我們可以看到 object file 的內容是由以下的結構所組成   blob  + 空格  + 檔案大小  + zer...
