1
我很好奇git add action, 所以我做了一些測試。當將文件添加到staged區域時,git是否保存目錄信息?
創建索引
1. git init
2. mkdir mydir
3. echo "hello" > mydir/hello
4. find .git/objects ==> nothing
5. git add .
6. find .git/objects ==> only find one file ,by cat-file, I am sure it is hello
做一些改變
7. rm mydir/hello
獲取文件回來
8. git checkout mydir/hello
9. ls mydir/hello ==> hello is back
我的疑問是: 當我做'git add .'
,有隻創建一個BLOB ,而不是創建一個樹來記錄direydy'mydir'。那麼,git checkout mydir/hello
怎麼可能找到blob?
我相信這些樹木在'git的構造/ index'單獨因爲這是經常的東西,將提交實際上是由前更改。 – poke
您可能會在[Git Internals](http://git-scm.com/book/en/Git-Internals-Git-Objects)的Pro Git書中找到有趣的部分,特別是「樹對象」。它似乎很好地覆蓋了git的存儲。 – simont
Git Internal只是給出了一個沒有目錄的例子。它沒有詳細解釋。 – yao