是时候做些浏览了。首先,从你的项目根目录开始……

    1. COMMIT_EDITMSG ORIG_HEAD hooks logs rr-cache
    2. HEAD config index objects
    3. MERGE_RR description info refs

    这是全部 Git 东东所存储的魔法目录。让我们一瞥对象目录。

    对象存储

    1. $ ls -C .git/objects
    1. $ ls -C .git/objects
    2. 09 1f 27 43 69 83 97 af e4 info
    3. 11 24 32 59 78 96 a1 c4 eb
    1. $ ls -C .git/objects/09
    2. 6b74c56bfc6b40e754fc0725b8c70b2038b91e 9fb6f9d3a104feb32fcac22354c4d0e8a182c1

    看看两字符目录的其中之一。你应当看到一些具有 38 个字符 名称的文件。这些是 Git 中包含对象存储的文件。这些文件 已被压缩和编码,所以直接查看它们的内容并没有什么用处, 但我们将看一点。

    配置文件

    1. $ cat .git/config
    1. [core]
    2. repositoryformatversion = 0
    3. filemode = true
    4. bare = false
    5. logallrefupdates = true
    6. ignorecase = true
    7. [user]
    8. name = Jim Weirich

    这是项目级配置文件。在这儿的配置条目将覆盖你的主目录 中 .gitconfig 文件中的配置条目,至少对此项目来说是如 此。

    1. $ ls .git/refs
    2. heads
    3. $ ls .git/refs/heads
    4. master
    5. $ ls .git/refs/tags
    6. v1
    7. v1-beta
    8. $ cat .git/refs/tags/v1
    9. 1f7ec5eaa8f37c2770dae3b984c55a1531fcc9e7

    heads 目录与此相似,但它是用于分支而非标签。现在我 们只有一个分支,所以你在该目录中只会看到 master。

    HEAD 文件

    1. $ cat .git/HEAD
    1. $ cat .git/HEAD

    HEAD 文件包含当前分支的引用。此刻它是对于 master 的引用。