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
| Opzione | Descrizione |
|---|---|
--missing-ok | Non 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