Git 是否计划更改其哈希函数?

Does Git have plan to change their hash function?

假设将来 SHA1 被破解到可以为给定提交 ID 创建恶意提交的程度。 Git 人是否有应急迁移计划来更改他们的哈希函数而不要求客户端和存储库同时升级?

现在的Git版本有没有代码可以智能识别不同的哈希算法,如果不识别可以给用户一个好的提示?哈希算法是否存储在存储库中的任何位置?他们会像 /etc/shadow 中的 $#$ 那样为哈希添加前缀以指示不同的哈希算法吗?

这个问题经常出现。

A​​ recent thread 表明,就在 2014 年 11 月,这是一个有点复杂的变化:

Is there a plan for upgrading to a better hash function in the future? (E.g., should it become an urgent need.)

What are the roadblocks to adoption of a replacement hash function? Just documenting this would go a long way towards making it possible to upgrade some day.

最大的障碍是 SHA-1 的假设无处不在 源代码(例如假设对象名称总是占用 20 个字节)。布莱恩 开始清理 [1] 但我认为它停滞了。那么我们需要 处理 SHA-1 存储库的升级路径。

如果 Git 开发人员决定放弃 SHA-1,他们将有一些工作要做。目前似乎没有明确的计划,但似乎没有重大的技术障碍。