对象/目录中的目录名称是什么?

问题描述 投票:0回答:1

我猜这是访问git中特定文件的快捷方式。但我不知道目录的名称06, 0d, 17, 27, 29, 2e代表什么和为什么目录的名称是06

objects
   ├── 06
   │   └── d378aef5b28791df7c6b5a58c866d8569cac87
   ├── 0d
   │   └── 25470613db871791afd43ae724cbbe367c30ef
   ├── 17
   │   └── af6db51eca422ab8629a40cb54b8e5d8da2b3f
   ├── 27
   │   └── d749cd2a7e3d2b1e27080505e37b301f73108d
   ├── 29
   │   └── faabec2bc6b5a7b00a5d6d9ebc9f2a5daf3d5b
   ├── 2e
   │   └── e648b03e6b4bf45515a8eb3a3ab62400940fe2
git subdirectory
1个回答
1
投票

从Git documentation,当Git哈希一个对象时,上面的输出是一个40个字符的校验和SHA-1哈希。 Git使用该散列中的前两个字符作为子目录的名称,剩余的38个字符作为文件名。

如果再次检查对象目录,则可以看到它现在包含该新内容的文件。这就是Git最初存储内容的方式 - 作为每个内容的单个文件,以内容及其标题的SHA-1校验和命名。子目录以SHA-1的前2个字符命名,文件名是剩余的38个字符。

© www.soinside.com 2019 - 2024. All rights reserved.