Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git read-tree [-m | -u | --reset] <tree-ish>...

Descrizione

Il comando git read-tree carica i contenuti di un tree nell'index. Le varianti supportano il merge fino a tre tree (una base, ours, theirs) per uso durante i merge. git checkout, git merge e git reset usano tutti read-tree internamente.

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

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

Quando usarlo

La maggior parte degli utenti non ne ha mai bisogno. È rilevante per implementare strumenti di merge personalizzati, script che costruiscono l'index da tree arbitrari, o per il trucco git read-tree --prefix=<dir> per mergiare un subtree.

Opzioni comuni

OpzioneDescrizione
-mModalità merge tree a tre vie.
-uAggiorna la working tree per corrispondere all'index.
--resetSi comporta come reset --hard per l'index.
--prefix=<dir>Legge il tree in una sottodirectory.
--emptySvuota l'index.
-iNon aggiorna la working tree.

Esempi

git read-tree --empty
# Pulisce l'index

git read-tree HEAD
# Ri-popola l'index dal tree di HEAD

git read-tree --prefix=lib/ -u other-branch:src
# Inserisce il tree src/ di un altro branch in lib/

git read-tree -m HEAD origin/main
# Mergia due tree nell'index (merge di basso livello)

Errori comuni

Chiamare read-tree senza -u lascia la working tree fuori sync con l'index, sorprendendo le operazioni successive. Fare questo in una working tree trafficata può causare diff confusi.

Comandi correlati

git write-tree, git checkout, git merge, git update-index