+− 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 身份證書的選擇前綴攻擊。 現代 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 它對普通的專案創建或您的所有整合是否準備就緒, 沒有任何保證。 該例外具有權限界限。 如果您寧願閱讀而不是聽我說,那麼每天早晨,diff 會免費寄到您的收件箱, 在 thedailydiff.dev 上,連結如下。 所以今天的判決是需要審查。

為什麼我的裁決取決於整個工具鏈?

4:40 我會保留更強的雜湊選項,並在更改預設值之前測試整個工具鏈。 兼容性是提供安全改進的一部分。 這就是今天的差異。 我是 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-HK · 2026年9月29日

荷蘭政府建立自家Linux以擺脫微軟

荷蘭政府正在開發DAWO,這是一個基於NixOS的工作場所,旨在減少對外國科技供應商的依賴。該項目整合了作業系統、辦公軟件和管理工具,早期試點使用舊硬件。本集探討了選擇NixOS的原因、項目的可重現配置以及數位主權的實際限制。其原始碼仍從微軟旗下的GitHub獲取重要輸入,並計劃遷移到政府託管的鏡像。該報告還區分了美聯社關於國際刑事法院檢察官失去微軟電子郵件存取權的報導與微軟否認其暫停向法院提供服

5:01 ↗