git ls树头-第三列的含义

git ls树头-第三列的含义,git,tree,Git,Tree,当我们这样做时,第三列中的字符串是什么意思 $ git ls-tree HEAD 像这样 我假设它是Git存储库中给定树中包含的每个对象的唯一的40个字符的sha1哈希ID,尽管这一点并不清楚,只将第3列称为: 输出格式 SP选项卡 第三列是当前看到的树中包含的对象的键 Git将它处理的所有信息存储在键值存储中,键值是您看到的用ls tree打印的哈希值,或者是在提交时创建的哈希值 git保存的对象有三种:提交、树和blob 您可以使用命令git cat file访问git存储的任何对象的内

当我们这样做时,第三列中的字符串是什么意思

$ git ls-tree HEAD
像这样


我假设它是Git存储库中给定树中包含的每个对象的唯一的40个字符的sha1哈希ID,尽管这一点并不清楚,只将第3列称为

输出格式
SP选项卡

第三列是当前看到的树中包含的对象的键

Git将它处理的所有信息存储在键值存储中,键值是您看到的用
ls tree
打印的哈希值,或者是在提交时创建的哈希值

git保存的对象有三种:提交、树和blob

您可以使用命令
git cat file
访问git存储的任何对象的内容。例如,以下命令(
-p
用于漂亮打印)将打印提交对象的内容,该对象的外观应类似于此:

> git cat-file -p HEAD
tree def456aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
parent f1ddfa625b139184e8b719fcb662e713a77fedcb
author Bob Foo <bob@foo.com> 1358366479 -0800
committer Bob Foo <bob@foo.com> 1358366479 -0800

The commit message.
在显示哈希值的情况下,您可以继续执行相同的操作。如果与blob对象一起使用,它将打印文件的内容;如果与tree对象一起使用,它将显示树的内容,这将是存储库中的子目录。例如,要查看
contact.html
文件的当前内容,您可以使用:

> git cat-file -p 2271a9
# contents in contact.html

最后,检查所有这些的更多信息。

据我们所知,40个字符的SHA-1哈希Id只为每个注释生成。它是为repo中的每个文件和文件夹创建的吗?
> git cat-file -p def456aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
# the same output as: git ls-tree HEAD
> git cat-file -p 2271a9
# contents in contact.html