Comandos de Git

git checkout

git checkout: cambia a una rama o restaura archivos del directorio de trabajo.

Nota: Este comando ha pasado a usarse menos en favor de comandos más específicos como git switch y git restore, introducidos en Git 2.23 (agosto de 2019). Estos comandos nuevos buscan que Git sea más intuitivo y reducir el riesgo de perder datos por accidente.

git checkout permite cambiar entre ramas, restaurar archivos y cargar commits concretos. Sin embargo, las versiones recientes de Git reparten muchas de estas funciones entre dos comandos más específicos: git switch y git restore.

git checkout se usa sobre todo para cambiar de rama o devolver archivos a un estado anterior. El cambio entre ramas facilita trabajar en varias funcionalidades o correcciones a la vez. La restauración de archivos permite descartar cambios cuando una prueba sale mal o te equivocas.

¿Por qué este comando se llamó "checkout"?

Ejemplos

Cambiar a una rama existente:

git checkout feature-branch

Crear una rama nueva y cambiar a ella al momento:

git checkout -b new-feature

Restaurar un archivo al estado del último commit. El separador especial -- indica a Git que todos los argumentos siguientes son rutas de archivo y evita que las confunda con una rama o un commit:

git checkout -- path/to/file.js

Cambiar a un commit concreto, entrando en estado detached HEAD, es decir, sin estar en una rama:

git checkout 1a2b3c4d

Sin embargo, en versiones más nuevas de Git (2.23+), se recomienda usar git switch para cambiar de rama y git restore para restaurar archivos. Separar responsabilidades hace que los comandos sean más intuitivos y menos propensos a errores.

Cambiar a una rama existente (Git 2.23+):

git switch feature-branch

Crear una rama nueva y cambiar a ella (Git 2.23+):

git switch -c new-feature

Restaurar un archivo al estado del último commit (Git 2.23+):

git restore path/to/file.js

En resumen: aunque git checkout sigue usándose mucho y todavía tiene soporte, es buena práctica empezar a usar git switch y git restore para acciones más claras y específicas en tu flujo de Git. Así evitas confusiones y errores, sobre todo si Git todavía te suena nuevo.