objects /中目录的名称是什么?

时间:2017-12-19 07:30:05

标签: git subdirectory

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

objects
   ├── 06
   │   └── d378aef5b28791df7c6b5a58c866d8569cac87
   ├── 0d
   │   └── 25470613db871791afd43ae724cbbe367c30ef
   ├── 17
   │   └── af6db51eca422ab8629a40cb54b8e5d8da2b3f
   ├── 27
   │   └── d749cd2a7e3d2b1e27080505e37b301f73108d
   ├── 29
   │   └── faabec2bc6b5a7b00a5d6d9ebc9f2a5daf3d5b
   ├── 2e
   │   └── e648b03e6b4bf45515a8eb3a3ab62400940fe2

1 个答案:

答案 0 :(得分:2)

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

  

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