我看过这个post,它提到Git对我使用的版本使用SHA-1哈希。但是,当我将git hash-object
的输出与熟悉的sha1sum
进行比较时,会得到不同的结果。例如:
$ git --version
git version 2.17.1
$ git hash-object data/letter.txt
2e65efe2a145dda7ee51d1741299f848e5bf752e
$ sha1sum data/letter.txt
86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 data/letter.txt
我正在关注此post。文件letter.txt
包含单个字母“ a”。
为什么这些命令会产生不同的结果?
答案 0 :(得分:3)
哈希值不匹配,因为Git在文件的数据/内容前添加了标头(blob #{content.length}\0
)。
cf。 https://git-scm.com/book/en/v2/Git-Internals-Git-Objects