Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git worktree add <path> [<branch>]
git worktree list
git worktree remove <path>
git worktree prune

Descrizione

Il comando git worktree permette a un singolo repository di avere più working tree checkoutate simultaneamente, ognuna su un branch diverso. Questo è più veloce ed economico che clonare più volte: un solo database degli oggetti, ma checkout paralleli. I worktree sono perfetti per eseguire test su un branch di rilascio mentre si continua lo sviluppo su main, o per prendere un fix d'emergenza senza disturbare il lavoro in corso.

Ogni worktree ha il proprio HEAD, index e file di lavoro, ma condivide gli oggetti e la config sottostanti. I worktree bloccati prevengono il pruning automatico di checkout montati altrove.

Nell'uso quotidiano, git worktree si integra con alias e CI.

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

Opzioni comuni

SottocomandoDescrizione
add <path> [<branch>]Crea un nuovo worktree.
add -b <new> <path> [<start>]Crea nuovo branch + worktree in un passo.
listMostra tutti i worktree.
remove <path>Cancella la directory e i metadati di un worktree.
pruneRimuove metadati per worktree il cui path è sparito.
lock / unlockPreviene o permette il pruning.
move <old> <new>Rilocaliza un worktree.

Esempi

git worktree add ../project-hotfix release/1.4
# Fa checkout di release/1.4 in una directory adiacente

git worktree add -b experiment ../project-experiment
# Crea un nuovo branch e worktree

git worktree list
# Visualizza tutti i worktree

git worktree remove ../project-hotfix
# Smonta quando finito

Errori comuni

Non puoi avere lo stesso branch checkoutato in due worktree simultaneamente — Git rifiuta. Usa --detach se hai bisogno solo dei contenuti. Dimenticare di fare worktree remove lascia metadati stantii; git worktree prune pulisce.

Comandi correlati

git switch, git branch, git clone, git submodule