|
|
1
1
|
|
|
2
0
我认为不可能有两个具有相同哈希的树对象,因为对象文件是由存储库中的哈希命名的。此外,为了使两个树对象相同,这将要求提交的状态在两种情况下都相同,直到所有暂存文件的内容,因为树对象保持对暂存文件的SHA-1引用。 这 post 可能有助于澄清这一点。 希望这能有所帮助。 |
|
|
3
0
展开一点 Michael Anderson's answer ,树对象的哈希的计算方式与任何其他对象的哈希相同:它是H(包括标头的对象内容),其中H是哈希函数(SHA-1或现在的SHA-256)。包括标题在内的内容具有链接中描述的形式:
对于
树
对象,原始数据是一个三元组的重复出现次数:模式、名称、哈希。模式是一个没有前导零的八进制数,用ASCII表示。它与名称之间用空格隔开(字节值为32位小数)。该名称通常被假定为UTF-8字节,尽管很少或根本没有检查其是否为有效的UTF-8;它不能包含ASCII
这三个元组是根据Git的索引生成的,Git的指数按排序顺序保存。这意味着,如果要生成 相同的 树对象数据 Git公司 会,您必须在 相同的订单 .我有一个示例Python代码,它将读取一个目录并收集将进入树对象的数据 here 。 |
|
Harry · 如何在编译时获取克隆的git仓库的标签 1 年前 |
|
Ooker · 如何从blob中删除秘密? 1 年前 |
|
|
hasdrubal · git日志图智能分支过滤器 1 年前 |
|
|
J. Doe · 为什么git中没有跟踪git文件? 1 年前 |