Por Anónimo (no verificado) , 29 Abril 2026

Sinopsis

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

Descripción

El comando git switch, introducido en Git 2.23, es un reemplazo enfocado para la mitad de cambio de branch de git checkout. Solo cambia branches (o crea y cambia en un paso). Se rehúsa a operar sobre archivos individuales, eliminando la fuente más común de errores de checkout. Si estás aprendiendo Git hoy, prefiere git switch para branches y git restore para archivos.

Como checkout, switch actualiza HEAD, el index y el árbol de trabajo para coincidir con el branch destino. Se rehusará a cambiar si hacerlo aplastaría cambios no commiteados, a menos que pases --force.

En el uso diario, git switch se integra con alias de shell. Para depurar, ejecuta con GIT_TRACE=1.

Entender cómo git switch interactúa con el modelo de datos de Git ayuda a predecir resultados y a recuperarse de errores.

Opciones comunes

OpciónDescripción
-c <name>, --createCrea un nuevo branch y cambia a él.
-C <name>, --force-createCrea o resetea un branch y cambia a él.
--trackConfigura seguimiento con un branch remoto.
--detachCambia a un commit en modo HEAD desconectado.
-Cambia al branch anterior (como cd -).
--discard-changesDescarta cambios locales al cambiar.
-m, --mergeMerge three-way de cambios locales al cambiar.

Ejemplos

git switch main
# Mueve al branch main

git switch -c feature/search
# Crea y cambia a un nuevo branch

git switch -
# Vuelve al branch anterior

git switch --detach v3.0.0
# Inspecciona un tag en modo desconectado

Errores comunes

Olvidar pasar -c al intentar crear un nuevo branch deja a Git buscando un branch existente y produce un error. Recuerda: switch solo es para branches; usa restore para archivos. Otro error es asumir que git switch - alterna entre dos branches indefinidamente; alterna entre el actual y el anterior, no entre los dos últimos en general.

Comandos relacionados

git checkout, git restore, git branch