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

Sinopsis

git checkout [<branch>]
git checkout -b <new-branch> [<start-point>]
git checkout [<tree-ish>] -- <file>...

Descripción

El comando git checkout históricamente hace dos cosas no relacionadas: cambiar branches y restaurar archivos. Por esta sobrecarga, Git moderno introdujo git switch para operaciones de branch y git restore para operaciones de archivo. git checkout sigue funcionando y permanece popular, pero se anima a los nuevos usuarios a aprender los comandos divididos más nuevos.

Cuando se le da un nombre de branch, git checkout mueve HEAD a ese branch y actualiza el árbol de trabajo. Cuando se le da un path, sobrescribe el archivo del árbol de trabajo con la versión del index (o de un commit especificado). El flag -b crea un nuevo branch y cambia a él en un paso.

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

Entender cómo git checkout interactúa con el resto del modelo de datos de Git rinde dividendos al predecir resultados.

Opciones comunes

OpciónDescripción
-b <name>Crea y cambia a un nuevo branch.
-B <name>Crea o resetea un branch y cambia a él.
--trackConfigura el seguimiento de un branch remoto.
--detachHace checkout de un commit en estado HEAD desconectado.
-- <path>Trata los argumentos siguientes como paths, no branches.
-f, --forceDescarta cambios locales al cambiar.
-p, --patchSelecciona hunks interactivamente para restaurar.

Ejemplos

git checkout main
# Cambia al branch main

git checkout -b feature/api origin/develop
# Crea un nuevo branch que rastrea origin/develop

git checkout HEAD -- src/config.js
# Descarta cambios locales a un único archivo

git checkout v1.2.3
# HEAD desconectado en un tag específico

Errores comunes

Ejecutar git checkout <file> sobrescribe silenciosamente tus ediciones locales sin posibilidad de deshacer. Usa git restore en su lugar; tiene un nombre más claro. El estado HEAD desconectado sorprende a los principiantes: los commits hechos ahí no pertenecen a ningún branch y pueden perderse al cambiar. Si quieres conservarlos, crea un branch primero.

Comandos relacionados

git switch, git restore, git branch, git reset