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