我正在尝试理解git存储树对象的精确格式。如何计算树对象的哈希值?
我正在尝试理解git存储树对象的精确格式。如何计算树对象的哈希值?
树对象
'tree' ' ' size_decimal '\0' tree_content
遍历tree_content中的每个条目
mode ' ' filename '\0' hash_20_bin
mode: 100644表示普通文件,100755表示可执行文件;040000表示树形目录;120000表示符号链接;160000表示Git链接。
表格请参考http://linquize.blogspot.hk/2011/10/supplemental-information-for-git.html
git ls-tree
和git cat-file -p
这样的命令将输出该对象的文本表示形式。这个文本形式是一个相当简单的转换:SHA-1以十六进制形式显示在条目名称之前,另外一列描述它指向的对象类型(“blob”、“tree”)只是为了清晰明了。