为什么GIT为同一个二进制文件(图像)生成的SHA1与其他工具的SHA1不同?

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

他,

出于好奇,我测试了由GIT生成的SHA1的图像文件“tech01.jpg”,但GIT生成的SHA1和其他工具生成的SHA1不同。

据我所知,无论系统如何,相同文件,二进制内容或相同文本的SHA1应该相同。

那么为什么由GIT生成的SHA1与其他工具不同。 GIT是否使用不同的加密算法或修改文件/文本的任何其他方式,或者我可能在我对SHA1的GIT用法的理解中遗漏了一些东西。

这就是我得到的:

Bash vs other tools SHA1 difference

我目前在via Bash上使用git版本2.13.0.windows.1(MingWWindows 7 64位机器,如果重要的话。

测试图像文件。 Image used in testing

git sha1
1个回答
3
投票

Git没有计算文件的SHA-1。每个git object,包括存储在git中的每个文件,都有一个标题,其中包含有关对象的信息,包括对象的类型(在这种情况下,文件是“blob”对象)和对象的大小。

您可以通过运行以下方法计算文件的Git对象ID:

git hash-object tech02.jpg

这将计算标头的SHA-1,后跟文件的内容。

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