+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

Git 的新哈希默认值 – 这意味着什么

Git 提议的 SHA-256 默认值将为新存储库创建兼容性边界。

Git 提议的 SHA-256 默认值将为新存储库创建兼容性边界。我们审查了官方计划、Scott Chacon 的反对意见和正在运行的 GitHub 预览例外,然后介绍了 Pi 1.0 和 SvelteKit 3。结论:NEEDS REVIEW。

阅读书面版(英文) ↗

本视频涵盖的内容

  • 为什么两个 Git 存储库会拒绝通信?
  • Git 3 到底改变了什么?
  • 如果 Git 检测到冲突,为什么还要替换 SHA-1?
  • 我们的本地兼容性检查显示了什么?
  • Pi Durable 中,什么能在崩溃中幸存下来?

翻译的文字记录

译自英文原版旁白。可用音频和字幕由 YouTube 控制。

为什么两个 Git 存储库会拒绝通信?

0:00 您可能会认为升级 Git 可以让您的工具保持通信。 Git 计划中的新哈希默认值创建的存储库与当今的旧格式 无法通信。 在这个视频中,为什么会改变? 什么会中断?谁准备好了? GitHub 上已经有一个正在运行的例外。 我将在最后向您展示它证明了什么。 今天是 10 月 2 日星期五,这里是 The Daily Diff。

0:18 星期四,一位 GitHub 联合创始人称 Git 计划中的改变是一个代价高昂的错误。 Pi 发布了一个新的代理程序,SvelteKit 发布了另一个迁移。 Scott Chacon 帮助构建了 GitHub 并编写了 Pro Git,所以这个抱怨来自 内部。 这家公司还出售 Git 工具。 首先,实际计划。

Git 3 到底改变了什么?

0:35 一旦库和托管服务准备好支持,Git 3 将默认新存储库为 SHA-256, 一旦库和托管服务准备好支持它。 官方文档没有给出发布日期,并继续支持 SHA-1。 当您升级可执行文件时,您现有的存储库不会神奇地改变格式。 在您的群聊安排紧急迁移之前,这值得记住。 这个戏剧是一个提议的默认值, 截止日期目前是一个空白日历。

如果 Git 检测到冲突,为什么还要替换 SHA-1?

0:58 为什么要改变? Git 通过哈希对象内容来命名对象。 文件输入到树中,提交引用树和更早的提交。 这为您提供了整个历史的完整性。 更改哈希方案,对象名称也会更改, 包括存储在其他对象中的引用。 Chacon 回溯到 Git 的创建者 Linus Torvalds, 他认为可信

1:17 分发很重要。这是一个历史立场,Linus 在 2005 年选择了 SHA-1。 在 2005 年。 自那时以来,安全情况已经发生了变化。 研究人员在 2017 年演示了 SHA-1 冲突, 后来又演示了针对 PGP 身份证书的 Chosen Prefix 攻击。 现代 Git 通过强化的 SHA-1 检测已知的冲突攻击。 其维护者也希望防范未来的攻击, 这是对签名的一种合理期望。

1:41 Chacon 认为生态系统成本太高,安全性太低。 他建议对树内容的单独强校验和进行签名, 同时保持现有的对象寻址方式。 什么会中断?我在本地创建了两种格式并哈希了相同的小文件。

我们的本地兼容性检查显示了什么?

1:54 一个对象名称有 40 个十六进制字符,另一个有 64 个。 然后我尝试在它们之间进行抓取。 我安装的 Git 拒绝了它,因为它算法不匹配, 这正是当前官方手册中描述的兼容性差距。 这使用了我旧的已安装的 Git,所以它告诉我们今天的边界。 称之为对未发布的 Git 3 的测试将是创造性会计。 迁移工作涉及假设哈希长度的脚本, 以及链接到对象名称的系统。

2:19 重新哈希历史需要这些身份之间的映射。 Git 的过渡设计包括该映射和签名处理。 实施准备情况很重要,因为设计文档不会升级您最喜欢的开发工具中隐藏的库。 库隐藏在您最喜欢的开发工具中。 这就是 Chacon 论点中的人力成本。 每个工具维护者都会得到另一个兼容性工作, 而用户发现他们的版本控制现在需要版本控制。 目前,在为项目选择新格式之前,请测试您的主机和工具。

2:44 现有团队可以在生态系统赶上之前保持其当前格式。 同时,Pi 达到了 1.0。

Pi Durable 中,什么能在崩溃中幸存下来?

2:51 它是 Earendil 的一个编码代理程序,通过 Codemode 支持原生 MCP, 并且在需要时加载工具。 团队称极简主义是重点。 如果您的代理设置已经类似于一个小政府, 在需要之前将工具从提示中移除听起来像是行政改革。 它还发布了 Pi Durable,一个独立的实验性框架。 任务保存检查点,以便重新启动的进程可以从持久存储中继续未完成的工作。 持久存储。关键细节是工具重放。

3:16 被崩溃中断的工具仅在其声明安全时才重新运行。 否则模型会被告知它被中断了。 当工具可以花钱时,这是一个有用的边界。 我希望助手记住我的 购物清单,而不是通过 购买两次来庆祝崩溃。

SvelteKit 3 为您迁移了什么?

3:30 SvelteKit 3 也在星期四发布,将配置移至 Vite,并将 $lib 替换为 #lib, 并使用标准包子路径导入。 迁移命令会重写它能重写的部分,并为其余部分留下待办事项列表。 您的机器人可以提供帮助,您的差异仍然值得阅读。 公告甚至为剩余部分招募了您的机器人朋友。 我们正在达到这样一个程度:框架升级会提供作业和一个建议的代课老师。 建议的代课老师。 远程函数仍需要实验性的 Async Svelte。

3:56 一个主要版本号令人放心,但单个功能带有自己的成熟度标签。 成熟度标签。检查您实际使用的那些。

GitHub 的运行例外证明了什么?

4:03 那么谁为 Git 的新格式做好了准备? 这是那个例外。 一个包含 Brian Carlson 演讲的公共 GitHub 存储库已经返回一个 完整的 SHA-256 对象名称。 我直接检查了公共远程。 演讲幻灯片称支持为私人预览,并表示存储库创建仍在进行中。 仍在进行中。等候室后面有实际进展。 这证明 GitHub 可以提供此预览存储库。

4:24 它不能保证普通的项目创建或您的所有集成都已准备就绪。 集成已准备就绪。 例外具有权限边界。 如果您宁愿阅读而不是听我说,那么 The Daily Diff 每天早上免费发送到您的收件箱, 每天早上免费发送到 thedailydiff.dev,链接如下。 所以今天的结论是 NEEDS REVIEW。

为什么我的结论取决于整个工具链?

4:40 我将保留更强的哈希选项,并在更改默认值之前测试整个工具链。 兼容性是提供安全改进的一部分。 这就是今天的 The Daily Diff。 我是 Axrisi 的 Niko。 负责任地合并。

来源

  1. Chaconblog.gitbutler.com
  2. Git's official plangit-scm.com
  3. Current interoperabilitygit-scm.com
  4. Transition designgit-scm.com
  5. Independent collision researchsha-mbles.github.io
  6. GitHub preview repositorygithub.com
  7. Pi 1.0earendil.com
  8. Pi Durableearendil.com
  9. SvelteKit 3svelte.dev
  10. HN discussionnews.ycombinator.com

相关视频

daily · zh-CN · 2026年9月29日

荷兰政府自建Linux以摆脱微软

荷兰政府正在开发DAWO,一个基于NixOS的工作场所,旨在减少对外国技术提供商的依赖。该项目整合了操作系统、办公软件和管理工具,早期试点使用旧硬件。本集探讨了NixOS的选择、该项目可重现的配置以及数字主权的实际限制。其源代码仍然从微软旗下的GitHub获取重要输入,并计划迁移到政府托管的镜像。报道还区分了美联社关于国际刑事法院检察官失去微软电子邮件访问权限的说法与微软否认暂停向该法院提供服务的

5:01 ↗