gpt4 book ai didi

git - git 什么时候真正验证提交链的完整性?

转载 作者:太空狗 更新时间:2023-10-29 14:03:26 25 4
gpt4 key购买 nike

我已经多次阅读有关 git 中基于 SHA-1 哈希和父提交链接的完整性机制的信息,这确保不会对 git 存储库中提交的数据进行任何更改。

我的问题是:在哪些操作期间,git 检查散列是否有效,即。 e.匹配提交的内容?是在推还是 pull 期间执行检查?不幸的是,我还没有找到这方面的任何信息。

最佳答案

Obsidian's comment是正确的:每个 Git 对象的名称​​是对象内容的哈希 ID,因此任何使用该 ID 查找和读取内容的东西都可以而且通常会验证哈希提取的数据与用作提取该数据的 key 的 ID 相匹配。

额外的检查——验证标签或提交中的 GPG 签名——仅在您明确要求时才进行。您可以使用 log.showSignature 配置设置请求 git log 默认检查此类签名。

请注意 Merkle tree 中任何节点的完整性取决于您是否信任先前的节点以防止第二原像攻击。如果您使用 GPG 签名的标签,这些标签中的签名会保护每个标签的数据(无论您信任 GPG 本身的程度如何),然后标签保护其提交对象(无论您信任 SHA-1 的程度如何)。提交对象反过来保护它的树,树保护它的子树和 blob,而 blob 散列保护它们的内容。因此,如果您担心第二原像攻击,则应该进行不同类型的分析。如果您只关心随机数据损坏(如在旋转媒体和/或非 ECC 内存上看到的那样),您可以像 Git 那样直接使用 SHA-1 哈希。

关于git - git 什么时候真正验证提交链的完整性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50650364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com