Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git write-tree [--missing-ok] [--prefix=<dir>]

Descrizione

Il comando git write-tree serializza l'index corrente in un oggetto tree nel database, restituendo lo SHA. È l'inverso plumbing di read-tree: quel comando carica un tree, questo ne memorizza uno.

Nell'uso quotidiano, git write-tree si integra con alias e CI.

Capire il modello dati di Git aiuta a prevedere i risultati.

Quando usarlo

Quasi mai lo chiami direttamente. git commit chiama write-tree internamente per catturare lo stato in stage. Ricorri ad esso quando sintetizzi oggetti tree per workflow personalizzati (generare un tree senza commit, scriptare pipeline commit-tree).

Opzioni comuni

OpzioneDescrizione
--missing-okNon fallisce se gli oggetti referenziati mancano.
--prefix=<dir>Scrive un sottoalbero dell'index.

Esempi

git write-tree
# Stampa lo SHA del tree che rappresenta l'index corrente

TREE=$(git write-tree)
COMMIT=$(echo "Snapshot" | git commit-tree "$TREE" -p HEAD)
git update-ref refs/heads/snapshot "$COMMIT"
# Costruisce manualmente un commit su un nuovo branch

git write-tree --prefix=docs/
# Solo il sottoalbero docs/

Errori comuni

Se l'index ha entry non mergiate, write-tree fallisce. Risolvi prima i conflitti. Dimenticare che write-tree non crea un commit — solo un tree — porta a oggetti dangling.

Comandi correlati

git read-tree, git commit-tree, git ls-tree, git update-index