El comando git checkout cambia entre ramas o restaura los archivos del árbol de trabajo (working tree). Hay varias opciones diferentes para este comando que no se tratarán aquí, pero puedes echar un vistazo a todas ellas en la documentación de Git.

Checkout un commit específico

Para realizar un checkout a un commit específico, ejecuta el comando:

git checkout id-del-commit-específico

podemos obtener el identificador (id) del commit específico ejecutando:

git log

Checkout a una Rama (Branch) Existente

Para realizar checkout a una rama existente, ejecuta el comando:

git checkout NOMBRE-DE-LA-RAMA

Por lo general, Git no te dejará realizar checkout a otra rama a menos que tu directorio de trabajo esté limpio, porque perderías cualquier cambio del directorio de trabajo al que no le has hecho commit. Tienes tres opciones para manejar tus cambios: 1) tirarlos a la basura, 2) realizarles un commit, 3) realizarles un stash.

Checkout a una Rama Nueva

Para crear y hacer checkout a una rama nueva con un solo comando, puedes usar:

git checkout -b NOMBRE-DE-LA-RAMA-NUEVA

Esto te cambiará automáticamente a la rama nueva.

Checkout a una Rama Nueva or Reiniciar una Rama a un Punto de Partida

El siguiente comando es similar al de realizar checkout a una rama nueva, pero utiliza la bandera -B (fíjese en la B mayúscula) y un parámetro opciones de PUNTO-DE-PARTIDA:

git checkout -B NOMBRE-DE-LA-RAMA PUNTO-DE-PARTIDA

Si la rama NOMBRE-DE-LA-RAMA no existe, Git la creará y la iniciará en PUNTO-DE-PARTIDA. Si la rama NOMBRE-DE-LA-RAMA ya existe, entonces Git restablece la rama a PUNTO-DE-PARTIDA. Esto equivale a ejecutar git branch con -f.

Forzar un Checkout

Puedes pasar la opción -f o --force con el comando git checkout para forzar a Git a cambiar de rama, incluso si tienes cambios fuera de la zona de montaje (en otras palabras, el índice del árbol de trabajo difiere de HEAD). Básicamente, se puede usar para tirar los cambios locales.

Cuando ejecutes el siguiente comando, Git ignorará las entradas no fusionadas:

git checkout -f NOMBRE-DE-LA-RAMA

# Alternativa
git checkout --force NOMBRE-DE-LA-RAMA

Deshacer los Cambio en tu Directorio de Trabajo

Puedes usar el comando git checkout para deshacer los cambios que has hecho en un archivo de tu directorio y trabajo. Esto revertirá el archivo a la versión en HEAD:

git checkout -- NOMBRE-DEL-ARCHIVO

Traducido del artículo - Git Checkout Explained: How to Checkout, Change, or Switch a Branch in Git