据我了解,Git散列这样的文件(Lua示例,我有一个名为sha1的函数,可以计算,sha1哈希):
sha1("blob "..filesize.."\0"..content)
我的问题是,Git如何将这些单独的哈希合二为一?具体来说,我希望能够计算Git仓库(在GitHub上)的最新提交的哈希,以验证仓库的本地副本与GitHub上的单独副本相同,同时仍然允许人们修改代码。
Git是否连接哈希然后再次哈希,或者使用其他一些技巧?根据我的理解,"最新提交" hash只是repo内容的哈希值,所以我可以看到我的文件是否匹配。这是真的吗?
答案 0 :(得分:0)
获取zlib并构建其zpipe示例,这将允许您直接转储每个repo对象的内容(或git cat-file
将执行相同但没有type / length / nul标头)