# Git 的新雜湊預設值——這意味著什麼

Published: 2026-10-02

Git 提議的 SHA-256 預設值為新儲存庫建立了相容性界限。我們檢視了官方計畫、Scott Chacon 的反對意見和一個可用的 GitHub 預覽例外，然後涵蓋了 Pi 1.0 和 SvelteKit 3。評語：NEEDS REVIEW。

Canonical: https://thedailydiff.dev/zh-TW/video/2026-10-02-git-hash-split/

## 本影片重點

- 為什麼兩個 Git 儲存庫會拒絕互相通訊？
- Git 3 到底改變了什麼？
- 如果 Git 偵測到衝突，為什麼還要取代 SHA-1？
- 我們的本地相容性檢查顯示了什麼？
- Pi Durable 中，什麼能在崩潰後倖存？

## 章節

- 0:00 為什麼兩個 Git 儲存庫會拒絕互相通訊？
- 0:34 Git 3 到底改變了什麼？
- 0:58 如果 Git 偵測到衝突，為什麼還要取代 SHA-1？
- 1:51 我們的本地相容性檢查顯示了什麼？
- 2:49 什麼能在 Pi Durable 的崩潰中倖存？
- 3:30 SvelteKit 3 為您遷移了什麼？
- 4:03 GitHub 的工作例外證明了什麼？
- 4:38 為什麼我的評語取決於整個工具鏈？

## 翻譯文字稿

譯自英文原版旁白。可用的音訊和字幕由 YouTube 控制。

### 為什麼兩個 Git 儲存庫會拒絕互相通訊？

0:00 您會認為升級 Git 會讓您的工具保持通訊。 Git 規劃的新雜湊預設值會建立目前舊格式的儲存庫 無法通訊。 在這段影片中，為什麼要改變？ 什麼會壞掉？誰準備好了？ GitHub 上已經有一個可用的例外狀況。 我將在最後向您展示它證明了什麼。 今天是十月二日星期五，這是 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 支援。 Codemode 和在需要時載入的工具。 團隊稱極簡主義為重點。 如果您的代理設定已經像個小政府， 在需要之前將工具排除在提示之外聽起來像是行政改革。 它還發佈了 Pi Durable，一個獨立的實驗性框架。 任務會儲存檢查點，以便重新啟動的程序可以從持久儲存中提取未完成的工作。 關鍵的細節是工具重播。

3:16 被崩潰中斷的工具只有在宣告安全時才會重新運行。 否則，模型會被告知它被中斷了。 當工具可以花錢時，這是一個有用的界限。 我希望助理記住我的 購物清單，而不是透過 購買兩次來慶祝崩潰。

### SvelteKit 3 為您遷移了什麼？

3:30 SvelteKit 3 也於週四發佈，將配置移至 Vite，並將 $lib 替換為 #lib，使用標準套件子路徑導入。 將 $lib 替換為 #lib，使用標準套件子路徑導入。 遷移命令會重寫它能重寫的，並為其餘的留下待辦事項清單。 您的機器人可以提供幫助，您的 diff 仍然值得閱讀。 公告甚至為剩餘的內容招募您的機器人朋友。 我們正達到一個框架升級附帶作業和 建議的代課老師的程度。 遠端功能仍需要實驗性的 Async Svelte。

3:56 一個主要版本號令人安心，但個別功能有其自己的成熟度標籤。 檢查您實際使用的那些。

### GitHub 的工作例外證明了什麼？

4:03 那麼誰準備好使用 Git 的新格式了？ 這是那個例外。 一個包含 Brian Carlson 演講的公開 GitHub 儲存庫已經返回一個 完整的 SHA-256 物件名稱。 我直接檢查了公開遠端。 演講幻燈片稱支援為私人預覽，並表示儲存庫創建仍在 進行中。等候室後面有實際進展。 這證明 GitHub 可以服務這個預覽儲存庫。

4:24 它對普通的專案創建或您的所有整合是否準備好沒有任何保證。 整合都準備好了。 例外有權限邊界。 如果您寧願閱讀而不是聽我說，diff 每天早上免費發送到您的收件箱，網址是 thedailydiff.dev，連結在下方。 每天早上都會發送到您的收件箱，在 thedailydiff.dev 上免費，連結在下方。 所以今天的評語是 NEEDS REVIEW。

### 為什麼我的評語取決於整個工具鏈？

4:40 我會保留更強的雜湊選項，並在更改預設值之前測試整個工具鏈。 相容性是交付安全改進的一部分。 這就是今天的 diff。 我是 Axrisi 的 Niko。 負責任地合併。

## 來源

- [Chacon](https://blog.gitbutler.com/git-3-sha-256) — blog.gitbutler.com
- [Git's official plan](https://git-scm.com/docs/BreakingChanges) — git-scm.com
- [Current interoperability](https://git-scm.com/docs/git-init) — git-scm.com
- [Transition design](https://git-scm.com/docs/hash-function-transition) — git-scm.com
- [Independent collision research](https://sha-mbles.github.io/) — sha-mbles.github.io
- [GitHub preview repository](https://github.com/bk2204/talk-rust-in-git) — github.com
- [Pi 1.0](https://earendil.com/posts/pi-1-0/) — earendil.com
- [Pi Durable](https://earendil.com/posts/pi-durable/) — earendil.com
- [SvelteKit 3](https://svelte.dev/blog/sveltekit-3-is-here) — svelte.dev
- [HN discussion](https://news.ycombinator.com/item?id=49924179) — news.ycombinator.com
