Git: Comandos (git checkout, git branch)

Apr. 18, 2023

Para trabajar en equipo no es suficiente con los comandos que hemos visto, en este post revisaremos los usos de git checkout y git branch para darnos cuenta de su importancia…🐤

Git branch

Cuando un equipo trabaja en un proyecto, no es conveniente trabajar en la misma línea de desarrollo, ya que puede generar conflictos. Git resuelve este problema incorporando ramas o branches, que nos ayudan a separar el flujo de trabajo.

Por ejemplo, si vamos a trabajar en una nueva funcionalidad, podemos crear una nueva rama para esa funcionalidad y trabajar en ella sin interferir con el trabajo de los demás.

Una vez que hayamos completado nuestra funcionalidad, podemos unir los cambios con la rama principal, pero veremos eso en detalle en otro post…🧐

i1

Estos son algunos comandos importantes que deberías conocer:

Ver las ramas en el repositorio local:

git branch

Ver las ramas en el repositorio local como en el remoto:

git branch -a

Ver las ramas en el repositorio local y remoto, mostrando información de los commits:

git branch -a -v

Crear una nueva rama con el comando:

git branch <branch name>

g1

También puedes cambiar el nombre de una rama existente::

git branch -m <branch name> <new branch name>

Eliminar una rama. Ten en cuenta que debes estar en una rama diferente para poder eliminarla::

git branch -d <branch name>

Si has realizado cambios en la rama y no los has fusionado, te mostrará un error, pero puedes forzar el borrado de la rama con el siguiente comando:

git branch -D <branch name>

Git checkout

Git checkout es un comando muy interesante que puede hacer varias cosas.

Visitar el pasado, entre los commits de nuestro proyecto.

Sin embargo, no es recomendable realizar modificaciones cuando estamos visitando un commit, ya que solo deberíamos utilizarlo para revisar cómo estaba el proyecto en ese punto específico.

Durante el desarrollo de un proyecto, vemos que HEAD apunta a la rama principal o a otra rama local. Pero cuando usamos git checkout en un commit específico, lo que sucede es que HEAD ya no apunta a una rama, sino directamente al commit. A este estado se le llama detached HEAD.

i2

El comando que usaremos es:

git checkout <ID del commit>

En este video podemos observar cómo volvemos al pasado en nuestro working directory. Los archivos y carpetas se muestran exactamente como estaban en ese commit, junto con el historial de commits.

g2

Ten cuidado de no realizar cambios, recuerda que lo usamos con fines de observación solamente.

Con el comando anterior, nos quedamos observando un commit del pasado, pero ¿cómo podemos volver a la versión actual de nuestro proyecto?

Es fácil, volvemos a usar git checkout, pero esta vez hacemos que apunte a la rama master, que por defecto nos posicionará en el último commit que hayamos hecho en la rama master:

git checkout master

g3

Cambiar a otra rama

Para cambiar a otra rama, utilizamos el siguiente comando:

git checkout <branch name>

Esto hará que el HEAD apunte al último commit de la rama seleccionada.

g4

i3

Crear otra rama e ir a ella al instante

Para crear una nueva rama y dirigirnos a ella con un solo comando podemos usar lo siguiente:

git checkout -b <branch name>

g5

Crear otra rama en base a otra e ir a ella al instante

Por defecto, git checkout -b se basará en la rama en la que esté el HEAD. Si queremos basarnos en otra rama, necesitamos agregar un parámetro adicional, que será el nombre de la rama en la que queremos basarnos.

git checkout -b <new branch> <existing-branch>

g6

Subir una rama al repositorio remoto(GitHub)

Podemos subir nuestra nueva rama al repositorio remoto usando el comando push y especificando la rama que queremos subir:

git push -u origin <branch name>

Hice este post con estos comandos juntos porque se utilizan con frecuencia en combinación. En futuras publicaciones, seguiremos incorporando más comandos y explorando cómo se pueden usar de manera efectiva en conjunto. 🚀

Deseando que te encuentres bien, te saluda Ulises🤵… Sígueme en mis redes GitHub LinkedIn Twitter