据我所知,当Git为文件分配SHA1哈希时,该SHA1对于文件的内容是唯一的.
因此,如果文件从一个存储库移动到另一个存储库,则该文件的SHA1保持不变,因为其内容未更改.
Git如何计算SHA1摘要?它是在完整的未压缩文件内容上执行的吗?
我想模仿在Git之外分配SHA1.
存储在树对象git ls-tree中的SHA1哈希值(由返回的sha1sum)与文件内容的SHA1哈希值不匹配(由返回)
$ git cat-file blob 4716ca912495c805b94a88ef6dc3fb4aff46bf3c | sha1sum
de20247992af0f949ae8df4fa9a37e4a03d7063e -
Run Code Online (Sandbox Code Playgroud)
git如何计算文件哈希值?它是否在计算哈希值之前压缩内容?
如果我正确读取git将所有文件存储在blob中.如果修改文件,文件的修改版本会获得它自己的blob,因此它自己的sha?
如何在指定的提交中获取文件的 SHA 哈希?我可以使用 获取触及文件的所有提交git log file,但是如何在每个特定提交中获取文件的 SHA 哈希值?
我想我可以通过检查提交而不是使用来做到这一点git-hash-object,但必须有更简单的方法。