# Il nuovo hash predefinito di Git – Cosa significa

Published: 2026-10-02

Il SHA-256 predefinito proposto da Git crea un confine di compatibilità per i nuovi repository. Esaminiamo il piano ufficiale, l'obiezione di Scott Chacon e un'eccezione di anteprima GitHub funzionante, quindi copriamo Pi 1.0 e SvelteKit 3. Verdetto: NEEDS REVIEW.

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

## Contenuto di questo video

- Perché due repository Git possono rifiutarsi di comunicare?
- Cosa cambia effettivamente Git 3?
- Perché sostituire SHA-1 se Git rileva collisioni?
- Cosa ha mostrato il nostro controllo di compatibilità locale?
- Cosa sopravvive a un crash in Pi Durable?

## Capitoli

- 0:00 Perché due repository Git possono rifiutarsi di comunicare?
- 0:34 Cosa cambia effettivamente Git 3?
- 0:58 Perché sostituire SHA-1 se Git rileva collisioni?
- 1:51 Cosa ha mostrato il nostro controllo di compatibilità locale?
- 2:49 Cosa sopravvive a un crash in Pi Durable?
- 3:30 Cosa migra per te SvelteKit 3?
- 4:03 Cosa dimostra l'eccezione funzionante di GitHub?
- 4:38 Perché il mio verdetto dipende dall'intera toolchain?

## Trascrizione tradotta

Tradotto dalla narrazione originale inglese. L'audio e i sottotitoli disponibili sono controllati da YouTube.

### Perché due repository Git possono rifiutarsi di comunicare?

0:00 Si potrebbe pensare che l'aggiornamento di Git mantenga i tuoi strumenti comunicanti. Il nuovo hash predefinito pianificato da Git crea repository che il vecchio formato di oggi non può comunicare. In questo video, perché cambiare? Cosa si rompe? Chi è pronto? C'è già un'eccezione funzionante su GitHub. Ti mostrerò cosa prova alla fine. È venerdì 2 ottobre e questo è The Daily Diff.

0:18 Giovedì, un cofondatore di GitHub ha definito il cambiamento pianificato di Git un errore costoso. Pi ha rilasciato un nuovo harness per agenti e SvelteKit ha rilasciato un'altra migrazione. Scott Chacon ha contribuito a costruire GitHub e ha scritto Pro Git, quindi questa lamentela proviene dall'interno dell'azienda. L'azienda vende anche strumenti Git. Primo, il piano effettivo.

### Cosa cambia effettivamente Git 3?

0:35 Git tre imposterebbe i nuovi repository su SHA duecentocinquantasei per impostazione predefinita, una volta che le librerie e i servizi di hosting sono pronti a supportarlo. Il documento ufficiale non fornisce una data di rilascio e mantiene SHA uno supportato. Il tuo repository esistente non cambia magicamente formato quando aggiorni l'eseguibile. Questo è un aspetto da ricordare prima che la tua chat di gruppo programmi una migrazione di emergenza. Il dramma è un default proposto e la scadenza è attualmente un calendario vuoto. La scadenza è attualmente un calendario vuoto.

### Perché sostituire SHA-1 se Git rileva collisioni?

0:58 Perché cambiare del tutto? Git nomina gli oggetti facendo l'hash dei loro contenuti. I file alimentano gli alberi e i commit si riferiscono ad alberi e commit precedenti. Questo ti dà integrità su tutta la storia. Cambia lo schema di hashing e anche i nomi degli oggetti cambiano, inclusi i riferimenti memorizzati all'interno di altri oggetti. Chacon si rifà a Linus Torvalds, il creatore di Git, sostenendo che la distribuzione fidata

1:17 è importante. Questa è una posizione storica, e Linus ha scelto SHA uno nel duemilacinque. La sicurezza si è evoluta da allora. La sicurezza si è evoluta da allora. I ricercatori hanno dimostrato collisioni SHA uno nel duemiladiciassette, e in seguito hanno dimostrato un attacco a prefisso scelto contro i certificati di identità PGP. Git moderno rileva attacchi di collisione noti con SHA uno rinforzato. I suoi manutentori vogliono protezione anche contro futuri attacchi, il che è una cosa ragionevole da volere dalle firme.

1:41 Chacon pensa che il costo dell'ecosistema acquisti troppo poca sicurezza. Propone di firmare un checksum forte separato del contenuto dell'albero, mantenendo l'attuale indirizzamento degli oggetti sottostante. Cosa si rompe? Ho creato entrambi i formati localmente e ho fatto l'hash dello stesso piccolo file.

### Cosa ha mostrato il nostro controllo di compatibilità locale?

1:54 Un nome oggetto ha quaranta caratteri esadecimali, l'altro ne ha sessantaquattro. Poi ho provato a recuperare tra di loro. Il mio Git installato lo ha rifiutato con algoritmi non corrispondenti, esattamente il divario di compatibilità descritto nell'attuale manuale ufficiale. Questo ha usato il mio vecchio Git installato, quindi ci parla del confine attuale. Chiamarlo un test del Git tre non rilasciato sarebbe contabilità creativa. Il lavoro di migrazione si estende a script che assumono una lunghezza di hash, e sistemi che si collegano ai nomi degli oggetti.

2:19 Rifare l'hash di una cronologia richiede una mappatura tra quelle identità. Il design di transizione di Git include quella mappatura e la gestione delle firme. La prontezza dell'implementazione è importante, perché un documento di design non aggiorna la libreria nascosta all'interno del tuo strumento di sviluppo preferito. La libreria nascosta all'interno del tuo strumento di sviluppo preferito. Questo è il costo umano nell'argomentazione di Chacon. Ogni manutentore di strumenti ottiene un altro lavoro di compatibilità, mentre gli utenti scoprono che il loro controllo versione ora ha bisogno di controllo versione. Per ora, testa il tuo host e gli strumenti prima di scegliere il nuovo formato per un progetto.

2:44 I team esistenti possono mantenere il loro formato attuale mentre quell'ecosistema si mette al passo. Nel frattempo, Pi ha raggiunto la versione uno punto zero.

### Cosa sopravvive a un crash in Pi Durable?

2:51 È un harness per agenti di codifica di Earendil, con supporto MCP nativo tramite Codemode e strumenti caricati quando sono necessari. Codemode e strumenti caricati quando sono necessari. Il team definisce il minimalismo il punto. Se la tua configurazione di agente assomiglia già a un piccolo governo, mantenere gli strumenti fuori dal prompt finché non sono necessari sembra una riforma amministrativa. Ha anche rilasciato Pi Durable, un framework sperimentale separato. Le attività salvano checkpoint in modo che un processo riavviato possa riprendere il lavoro non finito dalla memoria persistente. Il dettaglio cruciale è la riproduzione dello strumento.

3:16 Uno strumento interrotto da un crash viene rieseguito solo quando dichiara che è sicuro. Altrimenti al modello viene detto che è stato interrotto. Questo è un confine utile quando uno strumento può spendere denaro. Voglio che l'assistente ricordi la mia lista della spesa senza celebrare un crash comprandola due volte.

### Cosa migra per te SvelteKit 3?

3:30 SvelteKit tre è atterrato anche giovedì, spostando la configurazione in Vite e sostituendo dollar lib con hash lib, usando importazioni di sottopercorsi di pacchetti standard. sostituendo dollar lib con hash lib, usando importazioni di sottopercorsi di pacchetti standard. Il comando di migrazione riscrive ciò che può e lascia una lista di cose da fare per il resto. Il tuo robot può aiutarti, e il tuo diff merita comunque di essere letto. L'annuncio recluta persino i tuoi amici robot per gli avanzi. Stiamo raggiungendo il punto in cui un aggiornamento del framework spedisce compiti e un insegnante sostituto suggerito. suggerito. E le funzioni remote hanno ancora bisogno di Async Svelte sperimentale.

3:56 Un numero di versione principale sembra rassicurante, ma le singole funzionalità portano le proprie etichette di maturità. Controlla quelle che stai effettivamente usando.

### Cosa dimostra l'eccezione funzionante di GitHub?

4:03 Allora chi è pronto per il nuovo formato di Git? Ecco quell'eccezione. Un repository pubblico di GitHub contenente il discorso di Brian Carlson restituisce già un nome oggetto SHA duecentocinquantasei completo. nome oggetto SHA duecentocinquantasei completo. Ho controllato direttamente il remoto pubblico. Le slide della presentazione chiamano il supporto un'anteprima privata e dicono che la creazione del repository è ancora in arrivo. C'è un reale progresso dietro la sala d'attesa. Questo dimostra che GitHub può servire questo repository di anteprima.

4:24 Ci dà zero garanzie che la creazione di progetti ordinari o tutte le tue integrazioni siano pronte. integrazioni siano pronte. L'eccezione ha un confine di permesso. Se preferisci leggere questo piuttosto che sentirmi dire, il diff arriva nella tua casella di posta ogni mattina, gratuitamente su the daily diff dot dev, link qui sotto. ogni mattina, gratuitamente su the daily diff dot dev, link qui sotto. Quindi il verdetto di oggi è NEEDS REVIEW.

### Perché il mio verdetto dipende dall'intera toolchain?

4:40 Manterrei l'opzione hash più forte e testerei l'intera toolchain prima di cambiare i valori predefiniti. La compatibilità fa parte del rilascio del miglioramento della sicurezza. E questa è la differenza per oggi. Sono Niko di Axrisi. Merge responsabilmente.

## Fonti

- [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
