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.

El comando git checkout es un comando versátil de Git que permite moverte entre ramas, restaurar archivos y cambiar a commits concretos. Sin embargo, en versiones recientes de Git muchas de sus funciones se han separado en dos comandos nuevos: git switch y git restore, para ofrecer un conjunto de comandos más claro y centrado.

El propósito principal de git checkout es cambiar entre distintas ramas o restaurar archivos a un estado anterior. Ayuda a los desarrolladores a trabajar en varias funcionalidades o correcciones a la vez, porque facilita cambiar de una rama a otra. También permite descartar cambios en archivos y da cierto margen de seguridad cuando pruebas cosas 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. La opción especial -- se usa para decirle a Git que todos los argumentos siguientes son rutas de archivo. Esto es necesario para evitar ambigüedades cuando una ruta de archivo podría confundirse 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.