Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git switch [-c <new-branch>] [--detach] <branch>

Descrizione

Il comando git switch, introdotto in Git 2.23, è un sostituto focalizzato per la metà di switching dei branch di git checkout. Cambia solo branch (o crea e cambia in un solo passo). Rifiuta di operare su singoli file, eliminando la fonte più comune di errori di checkout. Se stai imparando Git oggi, preferisci git switch per i branch e git restore per i file.

Come checkout, switch aggiorna HEAD, l'index e la working tree per corrispondere al branch target. Rifiuta di passare se così facendo si calpesterebbero modifiche non committate, a meno che non si passi --force.

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

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

Opzioni comuni

OpzioneDescrizione
-c <name>, --createCrea un nuovo branch e vi passa.
-C <name>, --force-createCrea o resetta un branch e vi passa.
--trackConfigura il tracking con un branch remoto.
--detachPassa a un commit in modalità detached HEAD.
-Passa al branch precedente (come cd -).
--discard-changesButta via le modifiche locali quando passa.
-m, --mergeMerge a tre vie delle modifiche locali quando passa.

Esempi

git switch main
# Si sposta al branch main

git switch -c feature/search
# Crea e passa a un nuovo branch

git switch -
# Torna al branch precedente

git switch --detach v3.0.0
# Ispeziona un tag senza creare un branch

Errori comuni

Una confusione comune è aspettarsi che git switch operi sui file come fa git checkout. Non lo farà — usa invece git restore. Se hai lavoro non committato che confligge con il branch target, lo switch fallirà; o committa, fai stash, o usa --merge per tentare un merge a tre vie.

Comandi correlati

git checkout, git restore, git branch, git stash