Saltar al contenido

git checkout

Definición

El comando git checkout cambia de rama o restaura archivos del árbol de trabajo. Opera sobre archivos, confirmaciones (commits) y ramas. El comando git checkout permite cambiar entre múltiples características en un solo repositorio.

Cambiar de ramas

El comando git checkout funciona junto con el comando git branch. Actualiza los archivos en el directorio de trabajo para que coincidan con la versión almacenada en esa rama, indicándole a Git que registre todos los nuevos commits. El comando git checkout puede asociarse con git clone. El comando git clone se utiliza para obtener código de un repositorio remoto, mientras que git checkout se utiliza para cambiar entre versiones de código en el sistema local.

Cambiar a ramas existentes

Supongamos que hay un repositorio que contiene ramas preexistentes. Si deseas cambiar entre estas ramas, puedes invocar git checkout. Ejecutar git branch mostrará la lista de ramas disponibles y el nombre de la rama actual.

git checkout branch

makefile
git branch
master
test_branch
feature_branch
git checkout feature_branch

Crear y cambiar a nuevas ramas

El comando git branch se ejecuta para crear una nueva rama. Sin embargo, el argumento git checkout -b crea una nueva rama y cambia directamente a ella:

git checkout -b

makefile
git checkout -b <new_branch>

En el ejemplo dado, la bandera -b le indica a Git que ejecute git branch &lt;new\_branch&gt; antes de invocar git checkout &lt;new\_branch&gt;.

git checkout -b new_branch existing_branch

makefile
git checkout -b <new_branch> <existing_branch>

git checkout -b basa la new_branch en el HEAD actual. En el ejemplo dado, <existing_branch> basará new_branch en lugar del HEAD actual.

Cambiar de ramas

Invocar lo siguiente apuntará HEAD hacia la punta de <branchname>:

el comando git checkout branch

makefile
git checkout <branchname>

El comando git reflog se puede ejecutar para ver el historial. Lee más al respecto en nuestro artículo sobre git reflog.

Cambiar a ramas remotas

Es común utilizar repositorios remotos al trabajar en equipo. Cada repositorio remoto puede contener sus propias ramas. Para cambiar a una rama remota, se debe ejecutar git fetch para obtener su contenido:

git checkout remote

makefile
git fetch --all

Las versiones modernas de Git permiten cambiar a la rama remota como si fuera una rama local:

git checkout remote branches

makefile
git checkout <remote_branch>

Mientras que en las versiones antiguas de Git, debes crear una nueva rama basada en la remota:

git checkout para ramas remotas

makefile
git checkout <remote_branch> origin/<remote_branch>

Luego, cambia a una nueva rama local y restáurala al último commit de la rama remota con el comando git reset:

el comando git checkout

makefile
git checkout -b <branchname>
git reset --hard origin/<branchname>

HEAD desvinculado

El estado de “HEAD desvinculado” te permite cambiar a confirmaciones y examinar el estado anterior del repositorio sin crear una rama local. El puntero HEAD se actualiza para que git checkout apunte a la rama o confirmación especificada. No habrá problemas cuando HEAD apunte a una rama, pero cuando apunte a una confirmación, pasará a un estado de “HEAD desvinculado”.

El estado de “HEAD desvinculado” es una advertencia que informa que tu actividad está “desvinculada” del desarrollo del proyecto. Si desarrollas una función en un estado de “HEAD desvinculado”, ninguna rama te permitirá volver a ella. Al cambiar a otra rama, no podrás hacer referencia a tu función:

git checkout

El desarrollo debe realizarse en una rama y no en un estado de “HEAD desvinculado”, asegurando así tener una referencia a los nuevos commits. Pero cuando solo deseas revisar un commit antiguo, estar en un estado de “HEAD desvinculado” no representa un problema.

Práctica

¿Cuáles son las funcionalidades y características del comando 'git checkout'?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.