Sinossi
git checkout-index [-a] [-f] [-u] [--prefix=<dir>] [<file>...]
Descrizione
Il comando git checkout-index scrive il contenuto dei file dall'index alla working tree (o a una directory arbitraria usando --prefix). Non cambia l'index, il branch corrente o HEAD — rendendolo più sicuro di git checkout per estrazione file scriptata.
Nell'uso quotidiano, git checkout-index 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. Usalo quando script un deployment dall'index, costruisci tarball sorgente o esporti uno snapshot a una directory diversa dalla working tree.
Opzioni comuni
| Opzione | Descrizione |
|---|---|
-a, --all | Fa checkout di ogni file nell'index. |
-f, --force | Sovrascrive file esistenti. |
-u | Aggiorna info di stat per i file scritti. |
--prefix=<dir> | Scrive in <dir> invece che nella working tree. |
--stage=<n> | Fa checkout di uno stage specifico (1=base, 2=ours, 3=theirs). |
-z | Input/output terminato da NUL. |
--no-create | Non crea file; aggiorna solo le stat. |
Esempi
git checkout-index -a -f --prefix=/tmp/snapshot/
# Esporta l'intero index in /tmp/snapshot/
git checkout-index --prefix=build/ src/main.c
# Copia un singolo file in build/
git checkout-index --stage=2 -f -- conflicted.txt
# Sceglie la versione "ours" durante un conflitto
git ls-files | git checkout-index -f --stdin
# Ripristina ogni file tracciato dall'index
Errori comuni
L'argomento --prefix deve terminare con uno slash, altrimenti i nomi dei file si concatenano in modo strano. Senza -f, file esistenti nella destinazione causano errori. Scegliere lo --stage sbagliato durante la risoluzione dei conflitti applica una versione peggiore di quella intesa.
Comandi correlati
git checkout, git restore, git archive, git ls-files