Hoy vamos a por un nuevo comando de git, git branch y te lo explico con una historia que es ficción.

Hoy es tu día, el dia-r (de robo) te levantas a primera hora de la mañana vamos a robar un banco, coges tu pasamontañas, una gran bolsa y tu pistola de burbujas y un amigo esperará en un coche preparado para que salgáis echando chispas. Te acercas al banco más cercano, pides todo el dinero y sales por patas a junto de tu compi y escapáis.

Partimos el mismo dia, el dia-f (formal) te levantas a primera hora, te arreglas, te pones un top bonito y bien de perfume y te vas al banco a pedir educadamente un préstamo y muy amablemente le das las gracias a la persona que te ha atendido y te vas relajadamente a tomar un café con tu amigo majo.

Las dos historias (realidades) han partido de un mismo día.

Un día main  pero han ido de manera distinta por una parte dia-r y por otra dia-f,  estas dos últimas son dos bifurcaciones o dos ramas (branches en inglés). Ahora nos meteremos con la práctica y no lo verás tan abstracto ya verás.

Una rama es una bifurcación o divergencia con el que podemos continuar una línea de desarrollo (como una realidad paralela). Así podemos trabajar en un mismo proyecto haciendo más flexible nuestro desarrollo.

La rama principal main (rama por defecto)

Cuando creamos el primer commit por defecto en main se crea de forma automática el puntero main que está  apuntando a dicho commit. Cada vez que hagamos un commit nuevo el valor que contiene el puntero se modificará.

La rama main es como cualquier otra rama, solamente que es la que tenemos de por sí por defecto.

🎩
Recuerda que si estás haciendo una prueba por primera vez mirar nuestros anteriores tutoriales para ver si tienes git, e iniciar un repositorio git.

Vamos a usar el siguiente comando git branch sin argumentos:

git branch
* main

Como puedes ver, en mi caso devuelve el nombre de la única rama que tengo (main) con un asterisco, que indica que esa es mi rama actual. De momento estoy en esa realidad todavia.

📚
Primera parte
Crea un commit en la rama main o master (la que tienes por defecto) con un fichero mi_vida_rutinaria.txt pon lo siguiente:
Me levanto en un día aburrido como cualquier otro, voy a trabajar un lunes más pero...

Crear una nueva rama, ahora empieza la acción

Al crear una nueva rama, se creará un nuevo puntero con el identificador del último commit (el actual). Vamos a crear nuestra rama dia-r.

git branch dia-r

Recuerda que el comando git branch no cambiará la posición de la referencia (HEAD) ni tampoco cambia el contenido de lo que tengas en el working directory.

Si hacemos git branch podemos ver que aún no estamos en esa rama, tenemos que cambiarnos, para ello haremos:

git checkout dia-r

Ahora si hacemos git branch podemos comprobar que estamos en esa rama.

Otra opción para cambiar de rama sería git switch <nombre rama a cambiar>

A partir de aquí podríamos trabajar en esta rama o esta realidad. Pero antes de eso vamos a hacer la otra rama que necesitamos y la haremos de otra manera:

git checkout -b dia-f

Con este comando estamos creando la rama y moviéndonos a ella. Puedes comprobar con git branch que estás en esta rama nueva.

📚
Segunda parte
En la rama dia-f que has partido de main continúa con el fichero mi_vida_rutinaria.txt ..."tengo que pedir un préstamo al banco por eso me perfumo y me arreglo, pido amablemente el préstamos y me voy con un amigo a tomar café". Crea un commit con el mensaje "Un dia formal"

Cambia de rama para el dia-r y añade al fichero mi_vida_rutinaria.txt (que estará como lo has dejado en main) y añade "tengo ir a robar un banco, voy a coger el pasamontañas, la bolsa y la pistola de burbujas, pido el dinero y me recoge mi amigo para huir de la poli". Crea el commit con el mensaje "Un día de robo".

Prueba a ver lo que tenías en la rama main, lo que tienes en la rama dia-f y lo que tienes en la rama dia-r