他,
出于好奇,我测试了由GIT生成的SHA1的图像文件“tech01.jpg”,但GIT生成的SHA1和其他工具生成的SHA1不同。
据我所知,无论系统如何,相同文件,二进制内容或相同文本的SHA1应该相同。
那么为什么由GIT生成的SHA1与其他工具不同。 GIT是否使用不同的加密算法或修改文件/文本的任何其他方式,或者我可能在我对SHA1的GIT用法的理解中遗漏了一些东西。
这就是我得到的:
我目前在via Bash上使用git版本2.13.0.windows.1(MingWWindows 7 64位机器,如果重要的话。
Git没有计算文件的SHA-1。每个git object,包括存储在git中的每个文件,都有一个标题,其中包含有关对象的信息,包括对象的类型(在这种情况下,文件是“blob”对象)和对象的大小。
您可以通过运行以下方法计算文件的Git对象ID:
git hash-object tech02.jpg
这将计算标头的SHA-1,后跟文件的内容。