Git如何将多个文件合并为一个哈希?

时间:2014-05-04 15:00:42

标签: git hash github lua

据我了解,Git散列这样的文件(Lua示例,我有一个名为sha1的函数,可以计算,sha1哈希):

sha1("blob "..filesize.."\0"..content)

我的问题是,Git如何将这些单独的哈希合二为一?具体来说,我希望能够计算Git仓库(在GitHub上)的最新提交的哈希,以验证仓库的本地副本与GitHub上的单独副本相同,同时仍然允许人们修改代码。

Git是否连接哈希然后再次哈希,或者使用其他一些技巧?根据我的理解,"最新提交" hash只是repo内容的哈希值,所以我可以看到我的文件是否匹配。这是真的吗?

1 个答案:

答案 0 :(得分:0)

blob是blob,树指的是blob和树,并通过嵌入包含的blob和树的哈希码并提交来提交,因此树的哈希是散列哈希,并且提交嵌入其(顶层)树的哈希以及任何父提交哈希等。

获取zlib并构建其zpipe示例,这将允许您直接转储每个repo对象的内容(或git cat-file将执行相同但没有type / length / nul标头)

相关问题