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
| Opzione | Descrizione |
|---|---|
-m | Modalità merge tree a tre vie. |
-u | Aggiorna la working tree per corrispondere all'index. |
--reset | Si comporta come reset --hard per l'index. |
--prefix=<dir> | Legge il tree in una sottodirectory. |
--empty | Svuota l'index. |
-i | Non 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