.git
.git/HEAD
目前的branch名稱
或commit ID,即detached HEAD state
.git/refs/heads
只包含一個commit ID
例如.git/refs/heads/main
.git/objects/...
包含雙親、訊息、樹和作者
可以使用git cat-file -p [HASH]查看內容
trees
目錄清單,在其中的檔案稱為blobs
blobs
包含實際程式碼的檔案
git gc會把檔案有效率地包裝在.git/objects/pack裡
reflog
每個branch、tag和HEAD的歷史
絕大多數檔案都在.git/refs裡,有些對應記錄會在.git/logs/refs
每行內容代表
前/後的commit IDs
使用者
時戳
記錄訊息
remote-tracking branches
.git/refs/remotes/origin/main
最近的遠端branch的commit ID
.git/config
local的版本庫設定檔
global的會儲存在~/.gitconfig中
hooks
自定腳本
staging area
.git/index
準備commit的檔案
git ls-files --stage