Git 哈希输出与 sha1sum 不匹配,为什么?

Git hash output does not match sha1sum, why?

我看过这个 ,它提到 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'.

为什么这些命令会产生不同的结果?

哈希值不匹配,因为 Git 将 header (blob #{content.length}[=10=]) 添加到 data/content(文件的)之前。

比照。 https://git-scm.com/book/en/v2/Git-Internals-Git-Objects